gpt4 book ai didi

c++ - 在 C++ 中将变量传递给构造函数

转载 作者:行者123 更新时间:2023-12-02 02:22:55 24 4
gpt4 key购买 nike

我正在开始使用 C++ 中的类继承,但我真的陷入了困境。

从子类中,我尝试调用父构造函数并传递一个变量作为参数。警告表示此处使用字段“default_name”时未初始化[-Wuninitialized]

class ParentClass {

public:
ParentClass(std::string _name): name(_name) {};

std::string name;

void printname() {
std::cout << this->name << std::endl;
}

}

class DerivedClass: public ParentClass {

public:

std::string default_name = "Alex";

DerivedClass(): ParentClass(default_name) {};

}

这显然不起作用,因为 DerivedClass() 将在 default_name 初始化之前被调用。有没有办法使用变量从派生类构造父类的对象?

最佳答案

首先构造父类。尽管在您的程序中,name 的初始化首先出现,但这并不意味着任何事情。 C++ 有严格的构造和初始化规则。您正尝试在 name 初始化之前构造父类。

name 在父类构建之后构建。

因此,您可以做的是将 name 移动到现有父类之前的另一个父类中。首先构造该构造函数,然后您现有的构造函数将有一个已初始化的成员来使用..

关于c++ - 在 C++ 中将变量传递给构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66154947/

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