我正在研究某些类之间具有高多线程的项目,所以我需要访问某个类中的一个值,并且我想使用指针来访问它,所以我所做的基本上如下所述:
我有 3 节课:啊
class A{
public: int myvalue;
}
在 A.cpp 类中
class A{
A::A(){
myvalue=0;
}
function(){
myvalue++;
}
}
现在我想在一个名为 B 的中间类中访问这个值,因为我可以直接访问它。在 Bh 级
class B{
public: A *myptr1;
}
在 B.cpp 类中
class B{
B::B(){
myptr1 = new A();
}
Function (){
printf("My value is = %d \n",myptrt1->myvalue);
}
}
当我运行程序时,我的输出是正确的,等于 5。但是,我还需要在第三个类中访问这个值,所以我使用第二个类的另一个指针来访问它。
让我们称为第三类 C,所以在类 Ch
class C {
public: B *myptr2;
}
在 C.cpp 类中
class C{
C::C(){
myptr2 = new B();
}
Function (){
printf("My value is = %d \n",myptr2->myptrt1->myvalue);
}
}
当我运行程序时,我的输出不正确。我得到一些等于零的值,而另一些是负值,所以我认为第二个指针指向错误的内存位置?所以我的问题是如何正确访问这个值。为简单起见,我尝试编写类似于我的代码的代码,因为代码太大。
提前感谢您的帮助。