C++两个类相互调用
头文件都只声明对方是类(不知道细节),不包含对方头文件。这样能创建类指针。
cpp文件包含对方头文件,能用指针调用函数。
CA.h
#pragma once class CB; class CA { public: CA(int a); void CallB(); void printA(); CB* pb; private: int ma; };
CA.cpp
#include "CA.h" #include "CB.h" #include <iostream> using namespace std; CA::CA(int a) { ma = a; pb = nullptr; } void CA::printA() { cout << "CA print "<< ma << endl; } void CA::CallB() { pb->printB(); }
CB.h
#pragma once class CA; class CB { public: CB(int b); void CallA(); void printB(); CA* pa; private: int mb; };
CB.cpp
#include "CB.h" #include "CA.h" #include <iostream> using namespace std; CB::CB(int b) { mb = b; pa = nullptr; } void CB::printB() { cout << "CB print " << mb << endl; } void CB::CallA() { pa->printA(); }
CppTest.cpp
#include "CA.h" #include "CB.h" #include <iostream> using namespace std; int main() { CA ca(5); CB cb(7); ca.pb = &cb; cb.pa = &ca; ca.CallB(); cb.CallA(); int t; cin >> t; return t; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端