如何指定继承类的构造函数定义?

如何指定继承类的构造函数定义?

问题描述:

我有一个基类(头):如何指定继承类的构造函数定义?

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://*.com/questions/5764364/base-class-和派生类构造函数调用在c) – Nim 2012-03-01 17:29:48

这样的:

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

注意:如果你不熟悉的语法,寻找出成员初始化列表

+0

哦,妈妈的枪,我是如此愚蠢。我甚至在cplusplus.com上看过这篇文章,而且一定是直接通过了我。谢谢。链接任何人都感兴趣:http://www.cplusplus.com/doc/tutorial/inheritance/ – Cheetah 2012-03-01 17:27:42

这是你想要什么:

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

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

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

}