注:类的交叉引用本身就是一种不好的设计,BUT……如果我们非要这么用……
1、错误的方法
main.cpp
#include <iostream>
#include "class_a.h"
#include "class_b.h"
int main()
{
A aa;
aa.InvokeB();
B bb;
bb.InvokeA();
}
#ifndef CLASS_A_H
#define CLASS_A_H
#include "class_b.h"
class A
{
public:
void InvokeB()
{
B *b;
b->Print();
}
void Print()
{
std::cout << "This is class A\n";
}
};
#endif
class_b.h
#ifndef CLASS_B_H
#define CLASS_B_H
#include "class_a.h"
class B
{
public:
void InvokeA()
{
A *a;
a->Print();
}
void Print()
{
std::cout << "This is class B\n";
}
};
#endif