永发信息网

VC++ 关于include指令

答案:3  悬赏:0  手机版
解决时间 2021-02-07 14:36
  • 提问者网友:雾里闻花香
  • 2021-02-06 22:54
有两个类 A B
有A.CPP A.H B.H B.CPP 和MIAN.CPP
现在是A的成员有B B 的成员有A 如何避免出现uses undefined class
最佳答案
  • 五星知识达人网友:詩光轨車
  • 2021-02-06 23:02
.h的第一行,加上:
#pragma once

然后在需要的CPP里,每个引用需要的.H就是了...
全部回答
  • 1楼网友:末日狂欢
  • 2021-02-07 00:39
void __cdecl operator delete(void *) 这个函数不是系统函数吗,怎么会在afxmem.obj和delop.obj里有定义,难道你自己定义了delete操作。如果是,估计你重复包含了头文件。头文件要用#ifdef xxx #define xxx #endif包起来,防止重复包含。 endthreadex和beginthreadex是因为你在写多线程程序,然而没有使用多线程的工程。不知道你用的vc什么版本。要在工程的属性里面找一个设置,应该是link相关,选择包含debug multithread 或者 release multithread的库文件。工程一般默认是single thread,就会有这个问题。
  • 2楼网友:神也偏爱
  • 2021-02-06 23:50
首先,每个.h头文件中添加如下代码(包含整个文件) #ifndef _A_H_ //这是a.h c.h就是_C_H_ #define _A_H_ //这里是原来的全部内容 ..... #endif //在文件最末这样,能保证不重复包含,就算是你包含的比较乱,也不会出现重复定义。 其次,根据逻辑顺序包含。比如A派生于C,那么可以在A.H中直接先写上#include "c.h",之后就不用声明了。 最后,在A.CPP中使用B 和 B.CPP中使用A,都没有问题,这个只要CPP中定义包含顺序就可以了。 如果A B定义中互为友元,那么就需要采用.H中的声明或者包含方式,有了第一个定义,不怕循环包含。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯