一般在.h中会有这样的预编译命令:
#ifndef __MyListView_H
#define __MyListView_H
....
#endif //__MyListView_H
所以不会重复包含的。
另外,在.h里不要声明变量的实体,应该这样:
在.h中:
extern CMyListView * pMyListView;在某一个cpp文件中
CMyListView *pMyListView;

解决方案 »

  1.   

    这可能也算是一大忌,为什么要相互操作,
    如果要操作什么内容的话你可以用消息来处理呀,甚至你可以用全局变量来操作,
    但在这里你在.h中都没有必要#include 
    只要在各自的.h中说明一下对方的类名就可以了,#include 加到.cpp中
    如:
    在MyListView.h中加入
    class CMyTreeView;在MyTreeView.h中加入
    class CMyListView;
    ....
      

  2.   

    试试在头文件的前面加上#pragma once(加入taolei的宏后的第三行
      

  3.   

    sun2000,我试过你的方法,不行,因为你直接定义一个CMyTreeView,可是什么内容也没有,编译时提示:XXX不是CMyTreeView的Class member,怎么办?
      

  4.   

    把两个类做到一个文件里
    .h:
    class b;
    class a
    {
      ...
     b *pb;
    };
    class b

      ...
      a *pa;
    }
      

  5.   

    在MyTreeView.h中加入
    class CMyListView;Private:
    CMyListView m_List;
    在MyTreeView.cpp就可以使用如下的语句操作了.
    m_List.Add()
      

  6.   

    zzh,我试你的方法,根本不行:
    error C2079: 'm_Tree' uses undefined class 'CMyTreeView'
    我用的是VC5,有关系吗?我想也是不行的,你只定义了一下,但class member都没有,怎么可以调用?
      

  7.   

    sun2000说的没错
    不过:
    在MyListView.h中加入
    class CMyTreeView;
    定义:
    CMyTreeView * m_pTreeView;在MyListView.cpp中加入
    #include "MyTreeView.h"
    在MyTreeView.h中加入
    class CMyListView;定义:
    CMyListView* m_pListView;在MyTreeView.cpp中加入
    #include "MyListView.h"
      

  8.   

    感谢各位的帮助,我知道我为什么不成功了,原来是在"MyTreeView.cpp"中,我把"MyListView.h"放到了"MyTreeView.h"的前面.
    再次感谢大家.