1.OOP特性:抽象,封装和数据隐藏,多态,继承,代码的可重用性
2.类声明和类方法定义 类声明以数据成员的方式描述数据部分,以成员函数的方法描述共有接口。类方法定义:描述如何实现类成员函数。
3.C++常常将接口(类定义)放在头文件中,接口实现放在源代码里。一般类名首字母大写。
4.注意,class 声明一个类,注意和模板区分,模板可以用class typename声明,但是类不能用typename。
5.类中有三种权限:private public protected 其中protected跟继承相关。而private常常是数据成员。public常常是成员函数。而成员函数就是数据成员与外界的接口,桥梁。
6.结构和类唯一的区别就是,结构中默认为public,而类中默认为private。
7.内联函数:其函数定义位于类声明中的函数都将成为内联函数。也可以在类声明之外定义内联函数,但是前面必须加inline关键字。
class Stock { private: void set_tot(); }; inline void Stock::set_tot() { total_val = shares * share_val; }
8.同一类的不同对象有自己的存储空间->内部有自己的成员变量,但是成员函数是被这个类的所有对象共有的。
类的构造函数和析构函数
1.因为数据变量是private,不能直接访问,所有就不能用结构体初始化的方法来初始化类。->也就诞生了类构造函数。
2.使用类构造函数注意以下几点: 构造函数的参数表示的不是类成员,而是赋给类成员的值。 数据成员名一般使用前缀m_。
3.在设计类时,通常应提供对所有类成员做隐式初始化的默认构造函数。
4.析构函数是在类名称前加~。一般new了之后就会用析构函数进行delete删除。
5.
在这里插入代码片 stock1 = Stock(“”,“”,“”)
创建一个临时变量赋值给stack1,但不调用临时变量时自动调用析构函数。
6.先创建的对象后调用析构函数删除。
7.初始化对象比创建临时变量赋值给对象效率更高,因为不需要添加其他的副本。
8.
由于有的函数括号里面没有参数所有,在函数后面加上const void stock::show()const
注意事项:const成员对象只能调用const成员函数,当类中成员变量+mutable后,可在常对象和常函数中修改它的值。
this指针
当涉及到两个对象的时候,比如对两个对象的某个数据成员进行比较的时候会用到this指针。
this指针指向用来调用成员函数的对象
1.当返回类型为引用意味着返回的是调用对象本身,而不是副本。
2.对象数组创建的过程:先用默认构造函数创建对象保存在数组中,再用stock{}中创建临时对象,再赋值给数组中的元素。所有创建对象数组的时候必须要有默认构造函数。
类作用域:
类作用域意味着不能从外面直接访问成员,必须加类作用域解析运算符::