这篇小文开始进入C++的面向对象的编程。OOP三大特性是:封装、继承和多态。其实更精确的说法是:基于对象的编程风格:类的封装性。面向对象的编程风格:继承性和多态性。
声明类之后就可以使用类指针和作为虚参的数据类型。
public可在程序任何地方取用,private只能在成员函数或类友元中取用。如果类对象或其引用在成员函数(比如拷贝构造函数)中出现,同样可以取用private成员。但是在类外的类对象是不能取用private成员的。
类内定义的成员函数自动视为inline。inline函数必须在头文件中定义。
构造函数和析构函数
若在构造函数内动态分配内存之后,需在析构函数中释放。
通常,对象赋值时默认的拷贝构造函数即可使用。但是如果在构造函数中动态分配了内存,那么需自定义拷贝构造函数。并在拷贝构造函数中再次动态分配内存,并对这个新的副本赋值。
类名::类名(const 类名 &rhs)
关键字mutable(可变)const(不变).
在成员函数中标注const,就向编译器表明该成员函数不会更动类对象的内容。const和非const函数也可以用来作为重载函数之间的区别。
在成员变量上标注mutable,就向编译器表明该成员变量不会更改类对象的常数性,即const函数中可以对mutable变量的值进行变更。
this指针用来在成员函数中寻址其调用者(整个对象)。
