我来自C#背景,我会写一个类和构造函数:
public class Grunt : GameObject
{
public Grunt()
: base()
{
// do stuff
}
}
如何在C ++中编写构造函数继承?在标题和源中。我知道你没有'base'关键字可以使用,但其他语法是一样的吗?
答案 0 :(得分:6)
class Grunt : public GameObject
{
Grunt()
: GameObject() // Since there are no parameters to the base, this line is actually optional.
{
// do stuff
}
}
获取一本优秀的C ++书籍
答案 1 :(得分:5)
是的,将: base()
替换为: GameObject()
。
但是,如果没有参数,那么隐含的呼叫就像C#
中那样答案 2 :(得分:3)
您使用基类的名称代替' base'关键词。这是必要的,因为C ++中有多重继承的可能性。如果有多个基类,则可以通过逗号分隔调用来调用多个基本构造函数。
答案 3 :(得分:1)
标题:
template <int unique>
class base {
public:
base();
base(int param);
};
class derived: public base<1>, public base<2> {
public:
derived();
derived(int param);
};
源:
base::base()
{}
base::base(int param)
{}
derived::derived()
: base<1>()
, base<2>()
{}
derived::derived(int param)
: base<1>(param)
, base<2>(param)
{}
这阐明了如何从多个类继承,继承模板类,构造基类,演示如何将参数传递给基础构造函数,以及显示为什么我们必须使用基类的名称。