程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 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”不是基或成員

 

 

 


 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved