this
this是常量指针,指向非常量版本的类
MyClass *const
成员函数(member function)
所有成员都必须在类的内部声明,但成员函数体可以定义在类内或类外。
->成员函数的调用:调动成员函数时,this作为函数的隐式形参,实现对类成员的访问。
-->const 成员函数(常量成员函数)
Type function const (){return type;}
将const关键字放在成员函数的参数列表后,使this指针指向常量。
const MyClass *const
NOTE:常量对象,以及其引用和指针只能调用 const 成员函数
-->在类的外部定义成员函数
使用作用域运算符: MyClass::
表示代码位于类的作用域内。
double Sales_data::avg_price() const {
return units_sold == 0 ? 0 : revenue / units_sold;
}
-->类的非成员函数
非成员函数函数在概念上属于类,但是不定义在类中,一般与类声明在同一个头文件中。
构造函数
合成的默认构造函数(synthesized default constructor)
MyClass() = default;
数据成员初始化规则:类内初始值 > 默认初始化
类中的内置类型或复合类型的成员全部有类内初始值时,才适用于默认构造函数。
构造函数初始值列表
Sales_data(string &s,unsigned n):bookNo(s),units_sold(n){};
NOTE: 使用默认构造函数的方式初始化列表外的数据成员。
NOTE: 构造函数可以在类内声明,外部定义,需要加上作用域运算符
类的访问控制
访问说明符:public, private
class和struct的区别
默认访问权限不同(无访问说明符限制),struct默认为public,class默认为private。
友元
允许其他类或函数访问类的非public成员。
友元声明
友元声明只能出现在类内部,并且不能代替函数声明。
friend Sales_data add(const Sales_data &lhs, const Sales_data &rhs);
标签:const,函数,成员,Sales,C++,默认,第七章,Primer,构造函数
From: https://www.cnblogs.com/dltsj/p/17201763.html