在Visual MFC中声明CList的位置?

时间:2014-04-09 17:15:37

标签: c++ mfc

我有2个类:Class1(class1.cpp和class1.h)和Class2(class2.cpp和class2.h),在Class2中我需要向CList添加元素(AddHead,AddTail ....),以及在Class1中我需要显示CList。我不知道应该在哪里声明CList CList<myClass, myClass&> myList;,当我在Class 1中声明它时,Class 2不知道myList(&#39; myList&#39;:未声明的标识符),当我在Class 2中声明它,Class 1也不知道myList要显示吗?

1 个答案:

答案 0 :(得分:0)

你应该声明它取决于它应该具有的生命周期,以确保它不会被破坏,而另一个类仍然需要访问它。

如果你在Class1中声明它,那么Class2将需要#include&#34; class1.h&#34;它需要使用指向Class1对象或CList的指针进行初始化。它必须保存并使用该指针来访问CList。

编辑: 由于myList是Class1的成员,因此只能使用指向Class1对象的指针或引用来访问它,而不能仅作为变量本身访问。在构造Class2时,Class1会传递一个指向自身的指针(&#39;这个&#39;):

void Class2::Class2(Class1* p1)
{  
   INT_PTR size = p1->myList.GetSize();