2015-06-18 52 views
0

我有2个类让我们说class a und b。甚至还有第三类c。C++ 2 ref类应该访问另一个类的同一个对象

类a和b应具有对类c的同一对象的功能的访问。我想有一个像引用的成员。因此,类a和b的构造函数中的参数将是对象或类似的东西。

因为我刚刚接触CLI语法,所以还是和数据类型引用类混淆了。


所以一个正常的例子,没有CLI和类就是这样。

 int c = 5; 
     int &a = c; 
     int &b = c; 

所以无论何时我改变a或b的值,它都会改变c的值。

我不是英语母语,所以请友好:3。

回答

2

如果您的班级c是参考班,您可以使用^(句柄)来引用它。

像这里

ref_class_c^d(gcnew ref_class_c); 

ref_class^e = d; 

作为用于跟踪参考与手柄的码,不同的是类似于在C#方法与变量名的参考输入/输出参数。

例如,通过自己尝试下面的代码

void test1(String^ s) { 
    s = gcnew String("no change"); 
} 
void test2(String^% s) { 
    s = gcnew String("change"); 
} 

,当你调用这两个函数,你会发现其中的差别。

void test3(String^ s) { 
    s = "new string 1"; 
} 
void test4(String^% s) { 
    s = "new string 2"; 
} 

在你的情况下,要么工作。

+0

首先感谢编辑我有点失败了那部分。所以当我使用对象e时,它也会对对象d进行更改,因为它是一个引用? – delorax

+0

是的,这是正确的。那么,你可以在你的代码中尝试它。 –

+0

但是,我不应该使用%符号来做参考吗?例如ref_class ^%e = d; – delorax