类的文件结构
类由两个部分组成:类的声明和类的方法的定义,前者放在头文件,后者放在源文件;
成员变量一般在private(默认),但成员函数一般在public,有些成员函数也可以放在privata这是供类里面public函数使用的,而不能外部调用;
类的成员变量赋值和初始化
由于成员变量一般为private属性,那么一般不能通过类名.变量名的方式去赋值的,而是在类里面专门定义一个成员函数去赋值。
成员变量的初始化一般由构造函数去解决,构造函数的存在,使得:类名 类变量名(初始化值),这个语句合法,这样将可以在对类对象定义的同时对成员变量进行初始化操作。
This指针
This指针指向本类对象,主要用来给类的成员函数来用的,因为有时候成员函数要写一个逻辑是要用到自身这个类变量本身,但是类变量本身没有一个名称,那么*this就是这个类变量本身,this指向这个类变量本身
const成员函数和const成员变量
const成员函数:只有用const修饰的常成员函数才有资格操作常量或常对象;
声明方式为:void func() const;
定义时也要这样写
Void 类名::func() const{};
const成员函数也代表该函数不会对变量的值进行改变;
const成员变量初始化方式只能在定义时初始化,或者在构造函数通过初始化列表初始化。
浅拷贝与深拷贝
同一类型的对象之间可以赋值,使得两个对象的成员变量的值相同,两个对象仍然是独立的两个对象,这种情况被称为浅拷贝;
一般情况下,浅拷贝没有任何副作用,但是当类中有指针,并且指针指向动态分配的内存空间,析构函数做了动态内存释放的处理,会导致内存问题;
如果类的成员变量含有指针,那么就不能用系统的默认拷贝函数,而是要对拷贝构造函数进行重构。