gpt4 book ai didi

c++ - 继承类的默认构造函数

转载 作者:可可西里 更新时间:2023-11-01 15:03:53 27 4
gpt4 key购买 nike

我已将我的问题简化为以下示例代码:

class pokemon{
public:
pokemon(int n);
};

class MewTwo : public pokemon {
public:
MewTwo(int n);
};

MewTwo::MewTwo(int n) {}

产生错误:

no matching function for call to ‘pokemon::pokemon()’

认为发生的事情是,当我尝试编写不存在的 MewTwo 构造函数时,调用了 pokemon 的默认构造函数。我对 C++ 比较陌生,所以我只是在这里猜测。有什么想法吗?

限制:修复不能修改或向类添加公共(public)成员。

最佳答案

其实你要找的是成员初始化列表。将继承的类构造函数更改为以下内容:

class MewTwo : public pokemon {
public:
MewTwo(int n) : pokemon(n) {}
};

您在确定发生了什么方面是正确的。基本上,当您创建继承类时,您首先会创建基类,但您不能那样做,因为没有定义默认构造函数。成员初始化列表可以帮助您解决这个问题:)

checkout :http://www.cprogramming.com/tutorial/initialization-lists-c++.html更多示例!

关于c++ - 继承类的默认构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4352169/

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