C++ 同一实例在不同的类C++;
测试h: test.cpp:C++ 同一实例在不同的类C++;,c++,class,reference,instance,C++,Class,Reference,Instance,测试h: test.cpp: class A { public: A(); ~A(); }; class B { public: B(); ~B(); }; class C { public: C(); ~C(); }; 如何从类B访问类C的实例 我读了一些关于这篇作文的东西,但不明白它是什么 复制不起作用,因为C类存储某些不断变化的数据。我需要把它们从A级和B级换下来 单身汉也不适合 谢谢 在您的代码中没有任何类C的对象可以共享;您定
class A
{
public:
A();
~A();
};
class B
{
public:
B();
~B();
};
class C
{
public:
C();
~C();
};
如何从类B访问类C的实例
谢谢 在您的代码中没有任何类
C
的对象可以共享;您定义的类C
的唯一实例是a
的构造函数中的一个局部变量,其他人无法访问该对象(一旦该构造函数完成,该对象将被销毁)
一种简单的方法是定义一个C
类型的全局变量,并在其他转换单元(或相同单元)中使用它:
将其作为引用或指针传递?您知道类和类实例之间的区别吗?
A
或B
(或两者)应存储对C
的引用。e、 你需要一个指针。甚至可能是a类的声明在哪里?否则我就只能求助于星星了?
#include "test.h"
A::A()
{
C c1;
}
A::~A()
{
}
B::B()
{
//Here, too, must be "c1"
}
B::~B()
{
}
C::C()
{
}
C::~C()
{
}
// c.h
class C
{ public:
C(int val) : someVal(val) {};
int someVal;
};
extern C c1; // declare c1
// c.cpp:
C c1(0); // define c1 once in the program
// a.cpp
#include "c.h" // import the declaration of c1 (will not redefine it!)
A::A() {
c1.someVal = 5;
}
// b.cpp
#include "c.h"
B::B() {
c1.someVal = 10;
}