c++ - 如何在 C++ 的嵌套类中初始化 2 个成员

标签 c++ class constructor nested

您好,我的 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”的构造函数不是一种方法吗? 谢谢。

最佳答案

这里不是嵌套类,而是一个 aggregate类(class)。 这里也不涉及继承(class B 不是 A 的直接基类),所以你不能直接调用 class B 的构造函数class A 的构造函数并初始化其变量。

相反,您必须初始化变量 b,它是 class A 的成员,如下所示:

A(HWND hwnd) : hwnd_main(hwnd), b(hwnd) {}

关于c++ - 如何在 C++ 的嵌套类中初始化 2 个成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53146387/

相关文章:

c++ - 检查 char 指针是否为空 - 复制构造函数

c++ - 这个继承自 std::vector 的类声明有问题吗?

c++ - 有没有办法在 C++ 的类之外调用基函数?

javascript - 在这种特殊情况下,indexOf 匹配变量

block 内声明的对象的 C++ 持久性,内存泄漏的可能性?

python - 从不是类成员的类中调用单独脚本中的函数

Java构造函数在属性之前有和没有 "this"

c++ - STL中的列表如何不存储在连续的内存中?

c++ - 副作用/ volatile /复制构造函数/析构函数

使用公共(public)和私有(private)重载构造函数时的 C++ 垃圾成员值