当前位置:编程学习 > C/C++ >>

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++ ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,