【发布时间】:2013-09-24 01:53:46
【问题描述】:
我试图为类 (B) 创建一个成员(类 A 的道具)。 A 类的这个成员“prop”需要获取在其构造函数中传递的新创建的 B 实例的“this”指针。就像下面的 sn -p (Snippet 1) 所示。
但是,这在编译时失败并显示错误消息: “需要一个类型说明符”(翻译自德语)。
我认为这是关于我无法在这种情况下使用 this 指针,但我不想走 Snippet 2 的方式并使用指针。这对我来说不实用。
有什么方法可以实现接近第一个sn-p的编码风格吗?
片段 1
class B;
class A
{
public:
A(B* b)
{
// ...
};
};
class B
{
public:
A prop(this);
};
片段 2
class B;
class A
{
public:
A(B* b)
{
// ...
};
};
class B
{
public:
B()
{
this->prop = new A(this);
}
A* prop;
};
编辑:刚刚发现了这个 sn-p,但是当一个类中有很多时,它真的不可读。
片段 3
class B;
class A
{
public:
A(B* b)
{
// ...
};
};
class B
{
public:
B() : prop(this) {};
A prop;
};
非常感谢!
塞巴斯蒂安
【问题讨论】:
标签: c++ initialization class-members