1. 问题描述
在写程序的过程中,会设计很多不同的类,这些类里面包含很多的变量和函数,并且类与类之间需要进行数据传输,在需要调用其他类的时候需要实例化对象,这个对象是系统重新分配内存的一个对象,里面的成员都是未定义的,不包含传入的值,所以不能达到我们的目的
2. 解决方案
使用 引用
+ 全局变量
的方式获取到相应的值
在需要被调用的a源文件中声明一个全局指针,并指向本身,A 的源文件
// a.cpp
A *a;
A::A()
{
a = this;
}
在主动调用的b源文件中引用一个 a中的指针,然后开始调用
// b.cpp
#include "a.h"
extern A *a;
// 开始调用
a->c;
a->func();
总结
不能使用实例化对象的情况下,可以使用指针
进行调用,记录并分享这个问题。