派生类中的vector成员无法初始化
时间: 2024-03-10 12:25:44 浏览: 57
在派生类中,如果有一个成员是一个`vector`对象,并且你想要对它进行初始化,可以使用初始化列表来实现。下面是一个示例代码,演示了如何在派生类中初始化`vector`成员:
```cpp
#include <iostream>
#include <vector>
class Base {
public:
Base() {
std::cout << "Base constructor called" << std::endl;
}
};
class Derived : public Base {
public:
std::vector<int> nums; // vector成员
Derived() : nums({1, 2, 3, 4, 5}) { // 初始化列表进行初始化
std::cout << "Derived constructor called" << std::endl;
}
};
int main() {
Derived derivedObj;
return 0;
}
```
在上面的示例代码中,派生类`Derived`中有一个`vector<int>`类型的成员`nums`。在派生类的构造函数中,使用初始化列表来为`nums`成员赋初值。运行上述代码,你会看到输出结果为:
```
Base constructor called
Derived constructor called
```
这表示`Base`类的构造函数和`Derived`类的构造函数都被调用了,同时`nums`成员也被成功初始化为{1, 2, 3, 4, 5}。如果你想自定义初始化`nums`的内容,只需修改初始化列表中的数值即可。希望这能解决你的问题!如果还有其他疑问,请随时提问。
阅读全文