c++交叉#include问题
这个问题会引起莫名其妙的编译错误,
碰到类里有其他类的指针的话,不要#include,提前声明下即可
class_a.h
#ifndef CLASS_A_H #define CLASS_A_H class B; class A { public: void Print() { std::cout << "This is class A\n"; } B *b; }; #endif
class_b.h
#ifndef CLASS_B_H #define CLASS_B_H class A; class B { public: void Print() { std::cout << "This is class B\n"; } A *a; }; #endif
main.cpp
#include <iostream> #include "class_a.h" #include "class_b.h" int main() { A aa; aa.b->Print(); B bb; bb.a->Print(); }
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步