C++基类与派生类
一、构造
构造函数不能为虚函数
派生类要先调用基类的构造函数,而不能直接覆盖基类的构造函数。
所以在派生类不能再成员初始化列表中初始化基类的成员
见如下例子:
[cpp]
01.class Base
02. {
03. public:
04. Base(double dNum)
05. : nBase(1)
06. , dBase(dNum)
07. {
08.
09. }
10. int ShowNum(){return nBase;}
11. protected:
12. int nBase;
13. double dBase;
14. private:
15. };
16.
17.
18. class Derived : public Base
19. {
20.
21. public:
22. Derived(double dNum)
23. : Base(dNum)
24. , nBase(3)
25. {
26. nBase = 2;
27. }
28. protected:
29. private:
30. };
class Base
{
public:
Base(double dNum)
: nBase(1)
, dBase(dNum)
{
}
int ShowNum(){return nBase;}
protected:
int nBase;
double dBase;
private:
};
class Derived : public Base
{
public:
Derived(double dNum)
: Base(dNum)
, nBase(3)
{
nBase = 2;
}
protected:
private:
};
会在,nBase(3)处报错 error C2614: “Derived”: 非法的成员初始化:“nBase”不是基或成员
补充:软件开发 , C++ ,