【发布时间】:2016-02-03 20:19:18
【问题描述】:
我遇到了内存违规错误,我不知道它来自哪里。 我的问题是:我是否允许在构造函数初始化列表中获取类成员的地址,以便可以将其传递给需要引用它的对象?
例如:
class A
{
};
class ReferencesA
{
A * const pA;
ReferencesA( A * ptrA ) : pA( ptrA ) { }
};
class B
{
A a;
ReferencesA referencesA;
B() : referencesA( & a ) { }
};
在构造函数初始化列表中& a 是否安全?在我看来,它会是这样,但事情并不总是像我们预期的那样工作。
谢谢。
【问题讨论】:
-
我觉得不错。可能是“referencesA”对其 ctor 内的 ptrA 所做的操作导致了崩溃,尤其是在“a”尚未构建的情况下。
标签: c++ class pointers constructor