c++ - 如何初始化嵌套类中的成员?C++
问题描述
我在类内部初始化类成员时遇到问题。假设我想将直径、宽度和体积设置为 1,就像我将 x 设置为 1
struct car {
int x;
struct wheels {
int diameter;
int width;
};
struct engine {
int volume;
};
car();
car(wheels w, engine e);
};
car::car() : x(1), wheels::diameter(1), wheels::width(1) {}
我也试过这样做,但没有运气:
car::car() : x(1), wheels{ 1,1 } {}
解决方案
您的类声明了嵌套类wheels
and engine
,但它实际上并不包含 typewheels
或 type的成员变量engine
。解决这个问题很容易:
struct car {
struct Wheels {
int diameter;
int width;
};
struct Engine {
int volume;
};
int x;
Wheels wheels;
Engine engine;
car() : x(1), wheels{1,1}, engine{} {}
car(Wheels w, Engine e) : x(1), wheels(w), engine(e) {}
};
推荐阅读
- function - A-frame:onclick函数冲突?
- sql - Excel换行符/返回
- git - 重新设置私有历史记录,将一堆更改移到逻辑上属于它们的位置
- php - php 7.2 的 windows zmq dll 问题
- python - 异常处理错误尝试....除了 3 种可能的情况
- push-notification - Actions-on-Google 自定义推送消息说明
- aspose - Aspose字体目录搜索顺序
- sql - 不确定存储过程的正确语法
- python - 在 python 3.7 上安装 Numberjack
- azure-devops - 将 CI 构建结果提交到存储库