【问题标题】:c++ 2 ref classes should have acess to one same object of a other classc++ 2 ref 类应该可以访问另一个类的一个相同对象
【发布时间】:2015-06-18 14:53:58
【问题描述】:

我有 2 节课,比如说 a 类和 b 类。甚至是三等c。

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

因为我是 CLI 语法的新手,所以我对数据类型引用类有点困惑。


所以一个没有 CLI 和类的普通示例会这样。
        int c = 5; 
        int &a = c; 
        int &b  = c;

所以每当我改变 a 或 b 的值时,它都会改变 c 的值。

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

【问题讨论】:

    标签: c++ windows reference system command-line-interface


    【解决方案1】:

    如果你的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";
     }
    

    在你的情况下,任何一个都可以。

    【讨论】:

    • 首先感谢您的编辑,我也有点失败了。那么当我使用对象 e 时,它​​是否也会对对象 d 进行更改,因为它是一个引用?
    • 是的,没错。好吧,你可以在你的代码中尝试一下。
    • 但是我不应该使用 % 符号来做参考吗?例如 ref_class ^% e = d;
    • 这称为跟踪参考。他们都工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-01-16
    • 2021-08-06
    • 1970-01-01
    • 2013-09-23
    • 1970-01-01
    • 2023-02-04
    • 2013-11-18
    相关资源
    最近更新 更多