如何在C++中初始化嵌套类中的2个memeber

how to init 2 memebers in nested classes in C++

本文关键字:2个 memeber 嵌套 初始化 C++      更新时间:2023-10-16

嗨,我的win32问题如下:有两个类:A类和嵌套的B类。每个类都有一个HWND成员。我想在调用构造函数BEFORE之前初始化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"的scheme构造函数调用的东西。这不是一种填充"B"构造函数而不专门调用它的方法吗?Thx。

这里的不是嵌套类,更像是聚合类。这里也不涉及继承(类B不是A的直接基(,因此不能在class A的构造函数中直接调用class B的构造函数并初始化其变量。

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

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