有现实抽象一事物的过程:
c++的三大特征:
封装 继承 多态
所谓封装就是使用三个访问限定符来限制成员变量和成员方法的读取权限:
1. public 修饰,任意位置可见
2. private 修饰,本类中可见
3. protected 修饰,在本类中和子类类中可见
在这里说明,成员方法在类内实现,系统会默认其为inline函数,建议以inline函数的方式来执行
在类外实现,系统会默认其和普通函数一样,在执行的时候将其作为普通函数处理
this指针:
假设一个类为 Goods, 则this指针的的定义就是: Goods* const this, 因此this指针在使用时必须有一个指向
thiscall调用约定:
依赖于对象的调动
成员变量和成员函数:
首先说明类的实现是不占空间的.
在将一个类实例化为一个对象时,系统是给每个对象的成员变量都开辟内存空间的,但是对于成员函数所有的对象是用同一份的,那么成员方法是怎么精确的找到成员变量并打印出我们预期的结果的呢? 原因是成员方法在传参时,它会默认多接收一个参数,这个参数就是一个this指针,来指向这个对象
对象的生成:
1. 系统开给成员变量开辟内存
2. 系统调用构造函数对开辟的内存进行初始化
对比以下三行代码:
Ggoods good1; //这是一个Ggoods类的实例化过程,调用了默认构造函数
Ggoods good2("面包",5,100); //这是一个Ggoods类的实例化过程,调用了自己写的构造函数
Ggoods good3(); //这是一个函数声明,有返回值类型Ggoods,函数名good3,和参数列表
c++中类的6个默认函数:
1. 构造函数
2. 析构函数
3. 拷贝构造函数
4. 赋值运算符的重载函数
5. 取地址运算符的重载函数
6. const修饰的取地址运算符的重载函数