C++类的非默认构造函数是另一个类的成员?
Non-default constructor for C++ class which is a member of another class?
这是一个关于构造函数的问题。两个C++类 A 和 B 在概念上相关为
class A
{
B b;
};
class B
{
A *a;
};
问题是,当创建 A 的实例时,我希望使用指向 A 的指针构造其成员 B。因此,似乎 B 需要一个构造函数,该构造函数具有指向 A 实例的指针作为参数,并且在构造 A 的实例时调用 B 的构造函数,而不是 B 的默认构造函数。
有没有简单的方法可以做到这一点?
在此处使用struct
仅用于公共默认值。
struct A;
struct B {
B(A *a_ptr = 0) : a(a_ptr) {}
A *a;
};
struct A {
A() : b(this) {}
B b;
};
您可能会在构造函数中收到来自 busybody 编译器的A
警告,该编译器this
指向尚未完全构造的对象。
相关文章:
- 基于另一个成员参数将函数调用从类传递给它的一个成员
- 无法将指向类的成员函数的函数指针作为参数传递给同一类的另一个成员函数
- 访问从联合与另一个成员集复制的联合中的一个成员是否未定义或未指定?
- 使用线程从另一个成员函数调用一个Member函数
- 如何通过指针将模板成员函数传递给另一个成员函数
- 初始化指针或引用成员变量以指向另一个成员
- 在另一个成员函数中调用成员函数时'int'之前的预期主表达式
- C 将成员函数作为参数传递给另一个成员函数
- 如何在另一个成员函数中修改具有常量返回类型的成员函数的返回值
- 从其后声明的另一个成员数据初始化成员数据是否为未定义行为
- 如何使一个成员变量等于在main()中设置的另一个成员变量
- 在另一个成员中动态添加类成员
- 将类成员函数作为参数从同一类的另一个成员函数传递
- 将成员函数指针作为另一个成员函数中的参数发送
- 如何从同一类的另一个成员函数调用函子
- 从另一个成员函数的实现调用成员函数
- 如何将带有 args 的成员函数作为参数传递给另一个成员函数
- C++ 成员函数错误 在另一个成员函数中使用时"Undeclared Identifier"
- 如何根据其中一个成员的值对结构数组进行排序,从而在另一个成员的基础上断开联系
- 初始化整数成员变量会导致更改另一个成员变量的地址