has-a关系,私有,保护,多重继承,虚基类,模板

1. 包含对象的类,has-a关系

c++和约束:c++包含让程序员能够限制程序结构的特性,使用explicit防止单参数构造函数的隐式转换,使用const限制方法修改数据,这么做的根本原因是:在编译阶段出现错误优于在运行阶段出现的错误。

explicit Student(const string& s) : name(s), score() {}

explicit Student(int n) : name("Nully"), score(n) {}:score()是成员对象的初始化。如果是继承关系,应该采用 : 类名(初始化量)

在第二个构造构造参数中,第一个参数是数组的元素个数,而不是数组的值。

Student doh("Homer", 10);

doh = 5;  // reset name to "Nully", reset ro empty array of 5 elements

如果没有采用explicit,则将构造函数调用Student(5)将5转换成一个临时的Student对象,并将"Nully"来设置name的值。

猜你喜欢

转载自www.cnblogs.com/feng-ying/p/10561898.html