[学习笔记]《C++ Primer》第七章 类

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);
posted @ 2023-03-09 22:32  大骆驼神教  阅读(27)  评论(0)    收藏  举报