两个类相互包含对方成员的问题(3)
1 //B.h文件 2 #ifndef B 3 #define B //预处理命令中,没有包含A类的头文件,包含的话就错了 4 class B 5 { 6 public: 7 class A * a; //前向声明A类,同时声明A类的指针,注意,如果声明A类的对象就错了! 8 void fun2(); 9 }; 10 #endif
1 //A.h文件 2 #ifndef A 3 #define A 4 #include"B.h" 5 static int count=0; 6 class A 7 { 8 public: 9 B b; //这里和上面不同可以声明一个对象,当然也可以是指针 10 void fun1( ); 11 }; 12 #endif
1 //B.cpp文件 2 #include "stdafx.h" 3 #include "A.h" 4 #include <iostream> 5 using std::cout; 6 using std::endl; 7 void B::fun2() 8 { 9 cout<<"b"<<endl<<count++<<endl; 10 if(count==1000) 11 { 12 cout<<"太多了,停不下来了"; 13 getchar(); 14 exit(0); 15 } 16 a=new A; 17 a->fun1(); 18 }
1 //A.cpp文件 2 #include "stdafx.h" 3 #include "A.h" 4 #include <iostream> 5 using std::cout; 6 using std::endl; 7 void A::fun1() 8 { 9 cout<<"a"<<endl<<count++<<endl; 10 if(count==1000) 11 { 12 cout<<"太多了,停不下来了"; 13 getchar(); 14 exit(0); 15 } 1617 b.fun2(); 18 }
1 //main程序文件 2 #include "stdafx.h" 3 #include<iostream> 4 #include"A.h" 5 using std::cout; 6 using std::endl; 7 8 void main() 9 { 10 A a; 11 B b; 12 a.fun1(); 13 b.fun2(); 14 15 getchar(); 16 }
**************************************************************
我喜欢程序员,他们单纯、固执、容易体会到成就感;面对困难,能够不休不眠;面对压力,能够迎接挑战。他们也会感到困惑与傍徨,但每个程序员的心中都有一个比尔盖茨或是乔布斯的梦想,用智慧把属于自己的事业开创。其实我是一个程序员[=.=]
我喜欢程序员,他们单纯、固执、容易体会到成就感;面对困难,能够不休不眠;面对压力,能够迎接挑战。他们也会感到困惑与傍徨,但每个程序员的心中都有一个比尔盖茨或是乔布斯的梦想,用智慧把属于自己的事业开创。其实我是一个程序员[=.=]
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)