定义抽象数据类型
定义类的关键字包括struct 和 class
使用struct定义类
struct Sales_data{
std::string isbn() const{ return bookNo;} // 成员函数
std::string bookNo;
}
使用class定义类
class Sales_data{
std::string isbn() const{ return bookNo;} // 成员函数
std::string bookNo;
}
- this关键字
在成员函数内部可以使用this关键字,代表对象本身。
- 编译器如何编译类
首先编译成员的声明,然后再编译函数体
- 在类的外部可以定义成员函数
double Sales_data::avg_price() const{
return 0;
}
- 定义返回this对象的函数
Sales_data& Sales_data::conbine(const Sales_data &rhs){
return *this;
}
定义类相关的非成员函数,一般与类在同一个头文件中
- 构造函数
如果没有提供任何构造函数,则使用默认构造函数进行对象的初始化,这一工作由编译器完成。默认构造函数有以下行为进行初始化
- 类内有初始值,用初始值来初始化成员
2.默认初始化该成员
访问控制与封装
访问权限
- public 程序内可被访问
- private 类内可用
友元
friend通过友元允许其他类或者函数访问非公有成员,对于友元的定义只能出现在类定义的内部