本部分罗列了本章的难点或注意点,以便复习巩固或者回忆,关注私聊我可以免费领取pdf版C++ Primer Plus 第6版。
-
构造函数没有返回值,也就是说没有声明类型
-
构造函数是用来创建对象的,不能使用对象来调用。
-
显式和隐式调用
stock food = Stock("sd",12,2.2); stock food2("sd",12,2.2); stock* food3 =new Stock("sd",12,2.2);
-
当程序员没有创建构造函数,编译器会提供一个默认构造函数,它只用来创建对象。当创建了构造函数,编译器就不会提供一个默认构造函数,程序员也要为类创建默认构造函数(可以通过给已有的构造函数的所有参数赋默认值,挥着利用重载定义一个没有参数的构造函数)。
-
析构函数也没有返回值和声明类型。
-
C++11的列表初始化也能用于类
-
const对象只能使用const方法。
-
接受一个参数的构造函数允许使用赋值语法将对象初始化为一个值。 Classname object= value;
-
如果构造函数使用了new,则必须提供使用delete的析构函数。
-
初始化对象数组的方案:首先使用默认构造函数创建数组元素,然后花括号中的构造函数将创建临时对象,然后将临时对象的内容复制到相应的元素中。
-
类声明时是不会分配内存空间的。
-
C++98中,只能利用static声明值或枚举的静态常量,而不能存储int常量。c++11支持。
calss Bakery{ private: enum{Months = 12};//valid static const int Months = 12;//valid const int Months = 12; //invalid double consts[Months]; }
-
C++11作用域枚举
enum class egg{small,medium,large,jumbo}; enum ckass t_shirt{small,medium,large,xlarge}; int a = egg::medium; int b = t_shirt::medium;
-
指定底层类型
enum class : short pizza{small,medium,large};