我试图创建一个成员(类A的道具)到类(B)。类A的成员“prop”需要获取在其构造函数中传递的新创建的B实例的“this”指针。正如下面的代码段(代码段1)所示。类成员在实例初始化时需要这个指针
但是,这在编译时失败,并显示错误消息: “A typespecifier was expected”(德语翻译)。
我认为这是关于我不能在这种情况下使用这个指针,但我不想去Snippet 2的方式,并使用一个指针。这对我来说并不实际。
有什么办法可以完成这个接近第一个代码片段的编码风格吗?
片段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;
};
编辑:只是想出了这个片段,但在一个类别,它具有很多的时候使得它真正不可读。
片段3
class B;
class A
{
public:
A(B* b)
{
// ...
};
};
class B
{
public:
B() : prop(this) {};
A prop;
};
非常感谢!
Sebastian
我发现了一个包含C++ 11代码的解决方案,但对于非C++ 11代码,您是绝对正确的!谢谢。 –