C++ c++;2个ref类应该可以访问另一个类的同一个对象
我有两个班,比如说a班和b班。甚至是第三个c级 类a和b应该可以访问类c的同一对象的函数。我想要一个像推荐人一样的成员。因此,类a和类b的构造函数中的参数应该是对象或类似的东西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
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;这称为跟踪参考。他们都工作。