gpt4 book ai didi

c++ - c++是否可以在不基于其基类的派生类中创建构造函数?

转载 作者:行者123 更新时间:2023-12-01 15:12:23 24 4
gpt4 key购买 nike

执行下面的代码将给Child(){/**........code*/}行错误:没有匹配的函数调用'Base::Base()'并且候选的Base::Base(int)期望有1个参数,但未提供任何参数。

class Base
{

public:
Base(int test)
{

};

};

class Child : public Base
{

public:
Child ()
{
/**....
....
code*/
};
Child(int test):Base(test)
{

};
};
所以我想知道是否有一种方法可以在派生类中使用构造函数-例如: Child(){};-与它的基类没有任何关联。

最佳答案

没有。
根据您的定义,Child继承自Base,并且没有Child子对象是不可能创建Base的。
相反,您应该提供一个参数(无论是哪种默认值):

Child() : Base(42) {};
另外, Base可以提供一个默认的构造函数(可以不带参数地调用它),即
class Base {
public:
Base(int test = 42) {};
};
那么您的 Child就可以了。

关于c++ - c++是否可以在不基于其基类的派生类中创建构造函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63522075/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com