c++ - 如何在 C++ 的嵌套类中初始化 2 个成员
问题描述
嗨,我的 win32 问题如下:有 2 个类:A 类和一个嵌套的 B 类。每个类都有一个 HWND 成员。我想在调用之前在构造函数中初始化 A 和 B HWND 成员。我是说:
class A {
HWND hwnd_main;
B b;
public:
A(HWND hwnd) : hwnd_main(hwnd), B(hwnd) {}
};
class B {
HWND hwnd_main;
public:
B(HWND hwnd)
{
hwnd_main = hwnd;
}
};
用这个“B”类的方案构造函数调用的东西。不专门调用它不是一种填充“B”的构造函数的方法吗?谢谢。
解决方案
您在这里拥有的不是嵌套类,而是更像一个聚合类。这里也没有涉及到继承(类B
不是 的直接基类A
),所以不能class B
直接在的构造函数中调用构造函数class A
并初始化其变量。
相反,您必须初始化变量b
,它是这样的成员class A
:
A(HWND hwnd) : hwnd_main(hwnd), b(hwnd) {}
推荐阅读
- apache-spark - Apache Beam Metrics Counter 使用 SparkRunner 给出不正确的计数
- git - git --format,例如 `log` 和 `tag -l`:格式说明符是否相同,它们在哪里描述?
- mysql - 为什么 MySQL 不使用 UNIQUE KEY?
- azure-devops - How to get matrix's job's name in the steps part of the yaml file?
- google-cloud-platform - 使用 LFTP 将数据从 SFTP 同步到 Google Cloud Storage
- regex - 正则表达式匹配不应该的东西
- python - Doc2Vec infer_vector 未按预期工作
- javascript - 变量中未接收到数据时隐藏模式
- node.js - 无需链接即可连接 docker compose 容器
- python - 选择特定时间之间的所有记录?