一.你注意啊 这两个都不是一回事
我以前总以为 在继承类构造函数构造基类部分有两种方法
一种是 参数列
一种是 调用基类构造函数
不对的 从概念和意义上说技能在继承类构造函数里调用基类构造函数并给基类构造函数传递参数
二.那为什么我会有这种错觉呢 那是因为
你以为在用参数列 给基类赋值 其实你无法 access基类的 private成员 更别说给构造基类部分了对吧
这是一方面 ;另一方面 那是因为基类 没有带参构造函数 你即便不在参数列 给基类成员变量一个一个赋值
他自己在参数列调用那个默认的无参构造函数了 你在对他赋值 只是对 他的值的改变。
三所以记住
继承类构造函数想要构造基类部分
必须调用基类构造函数 必须调用基类构造函数 必须调用基类构造函数
如果基类是无参的构造函数 你不调用 系统也会默认自己调用
如果有参构造函数 那么必须在小括号和花括号之间调用 并给他传递参数
四.那参数列 只有一个作用
就是在小括号和花括号之间 给自己能访问的成员 以 成员(成员值)的样式赋值
仅此而已
五:
class CU :public CBase
{
int u;
public:
CU(int width, int height):CBase(width,height),u(3)
{
}
};
参数列 是参数列 调用基类构造函数并传参 是那样 这两个不一样!!!