【发布时间】:2021-05-15 04:57:18
【问题描述】:
我开始使用 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 被初始化之前被调用。有没有办法使用变量从派生类构造父类的对象?
【问题讨论】:
-
static const std::string default_name = "Alex";或自 C++20 起static constexpr std::string default_name = "Alex";
标签: c++ class oop variables inheritance