C++ c++;2个ref类应该可以访问另一个类的同一个对象

C++ c++;2个ref类应该可以访问另一个类的同一个对象,c++,windows,reference,system,command-line-interface,C++,Windows,Reference,System,Command Line Interface,我有两个班,比如说a班和b班。甚至是第三个c级 类a和b应该可以访问类c的同一对象的函数。我想要一个像推荐人一样的成员。因此,类a和类b的构造函数中的参数应该是对象或类似的东西 int c = 5; int &a = c; int &b = c; 因为我不熟悉CLI语法,所以我有点混淆了datatype引用类 因此,一个正常的例子wihtout CLI和类就是这样 int c = 5; i

我有两个班,比如说a班和b班。甚至是第三个c级

类a和b应该可以访问类c的同一对象的函数。我想要一个像推荐人一样的成员。因此,类a和类b的构造函数中的参数应该是对象或类似的东西

        int c = 5; 
        int &a = c; 
        int &b  = c;
因为我不熟悉CLI语法,所以我有点混淆了datatype引用类


因此,一个正常的例子wihtout CLI和类就是这样

        int c = 5; 
        int &a = c; 
        int &b  = c;
所以每当我改变a或b的值,它就会改变c的值


我不是以英语为母语的人,所以请友好:3.

如果你的
c
类是ref类,你可以使用
^
(句柄)引用它

喜欢这里的代码吗

 ref_class_c ^ d(gcnew ref_class_c);

 ref_class ^ e = d;
至于跟踪引用与句柄的区别,类似于C#method中的reference/out参数与变量名的区别

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

 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";
 }

在你的情况下,两者都可以。

首先感谢你的编辑,我也有点不及格。所以当我使用对象e时,它是否也会对对象d进行更改,因为它是一个引用?是的,这是正确的。嗯,你可以在你的代码中试试。但是我不应该用%符号来做一个引用吗?例如,ref_类^%e=d;这称为跟踪参考。他们都工作。