c++中a、b类相互调用

此问题参考一下大神提供的解决方案
class A
{
public:
void FunA1(){}
void FuncA2(){}
void FunA3(){b->funb1();}
private:
class B *b;

};
class B()
{
public:
void funb1(){}
void funb2(){ 
a->FunAa();
}
private:
class A a;
};


解决方案二:
以前做过测试,这种相互交叉使用,定义指针是可以的,定义对象不行。
例如:类A在B前定义

 class B;
 class A
 { public:
      B *pb;//合法
            B b;// 非法
}

class B
{
public:
  A a;//合法
    A *pa; //合法
};

C++之间的相互调用可以通过的成员函数、友元函数和静态成员函数来实现。 1. 的成员函数:一个的成员函数可以直接调用的其他成员函数。如果需要调用另一个的成员函数,则可以通过该的对象进行调用。 2. 友元函数:一个可以将另一个的成员函数或非成员函数声明为友元函数,从而允许该函数访问该的私有成员。在定义,可以使用 `friend` 关键字来声明友元函数。 3. 静态成员函数:静态成员函数是属于的函数,不属于任何一个具体的对象。它们可以直接通过调用,不需要创建对象。如果需要调用另一个的静态成员函数,则可以通过该名进行调用。 例如,假设有两个 `ClassA` 和 `ClassB`,其 `ClassA` 需要调用 `ClassB` 的成员函数 `func()`,可以通过以下方式实现: ```c++ class ClassB { public: void func() { // 成员函数实现 } }; class ClassA { public: void callFunc(ClassB& obj) { obj.func(); // 通过对象调用 ClassB 的成员函数 } }; ``` 如果需要使用友元函数或静态成员函数进行调用,则可以将 `ClassB` 的成员函数声明为友元函数或静态成员函数。例如: ```c++ class ClassB { private: int num; public: static void func() { // 静态成员函数实现 } friend void friendFunc(ClassB& obj); // 友元函数声明 }; class ClassA { public: void callFunc() { ClassB::func(); // 直接调用 ClassB 的静态成员函数 ClassB obj; friendFunc(obj); // 通过友元函数调用 ClassB 的成员函数 } }; void friendFunc(ClassB& obj) { obj.num = 10; // 友元函数可以访问 ClassB 的私有成员 } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值