我被告知要避免在 C++ 中使用指针。但是在我尝试编写的代码中,我似乎无法避免它们,或者我可能错过了其他出色的 C++ 功能。
我希望创建一个包含另一个类 (class2) 作为数据成员的类 (class1)。然后我希望 class2 了解 class1 并能够与之通信。
我可以引用 class1 作为 class2 中的成员,但这意味着我需要提供对 class1 的引用作为 class2 的构造函数中的参数,并使用我不想要的初始化列表。我试图在不需要构造函数的情况下做到这一点。
我希望 class2 有一个名为 Initialise 的成员函数,它可以接受对 class1 的引用,但如果不使用指针,这似乎是不可能的。人们会在这里推荐什么?提前致谢。
代码完全简化只是为了了解主要思想:
class class1
{
public:
InitialiseClass2()
{
c2.Initialise(this);
}
private:
class2 c2;
};
class class2
{
public:
Initialise(class1* c1)
{
this->c1 = c1;
}
private:
class1* c1;
};