2012-03-01 132 views
2

我有一個基類(頭):如何指定繼承類的構造函數定義?

class BaseClass 
{ 
    public: 
     BaseClass(int); // note no default constructor. 
} 

並派生它的類:

class DerivedClass : public BaseClass 
{ 
    public: 
     DerivedClass(void); 
} 

DerivedClass::DerivedClass (void) // note SPECIFICALLY no parameters. 
{ 
    super (10); // equivalent of what I am trying to do in Java (I think) 
} 

如何調用繼承類的構造函數在我的派生類?

+0

的可能重複[基類和派生類的構造函數調用C++](http://stackoverflow.com/questions/5764364/base-class-和派生類構造函數調用在c) – Nim 2012-03-01 17:29:48

回答

1

這樣的:

DerivedClass::DerivedClass (void) : BaseClass(10) 
{ } 

注意:如果你不熟悉的語法,尋找出成員初始化列表

+0

哦,媽媽的槍,我是如此愚蠢。我甚至在cplusplus.com上看過這篇文章,而且一定是直接通過了我。謝謝。鏈接任何人都感興趣:http://www.cplusplus.com/doc/tutorial/inheritance/ – Cheetah 2012-03-01 17:27:42

0

這是你想要什麼:

DerivedClass(void):BaseClass(10) { 
    //blah blah blah 
} 
1
class BaseClass 
{ 
    public: 
     BaseClass(int) {}; 
} ; 
class DerivedClass : public BaseClass 
{ 
    public: 
     DerivedClass(void); 
}; 

DerivedClass::DerivedClass (void) 
:BaseClass(10) 
{ 

}