Pointers 如何在C+中设置非指向对象的属性+/CLI

Pointers 如何在C+中设置非指向对象的属性+/CLI,pointers,c++-cli,Pointers,C++ Cli,以下是C++/CLI中具有属性的类的标头: public ref class MyClass { public: property double x { double get(); void set(double value); } MyClass(); } 如果我使用指针实例化对象,我可以如下设置x属性: MyClass^ obj

以下是C++/CLI中具有属性的类的标头:

    public ref class MyClass
    {
       public:
         property double x
         {
            double get();
            void set(double value);
         }

         MyClass();
     }
如果我使用指针实例化对象,我可以如下设置
x
属性:

MyClass^ obj = gcnew MyClass();
obj->x = 10.0;
如果不使用指针,则会出现编译错误 (C2228:“.x”的左边必须有class/struct/union)使用以下代码:

MyClass obj();
obj.x = 10.0; 
对于第二个示例,我应该怎么做


此语法问题是否特定于属性或非指向对象的任何成员?

第二种语法称为堆栈语义。当变量超出范围时,它创建对象并“销毁”它

事实上,不会释放内存,但会为对象调用Dispose

因此,使用句点而不是指针运算符->的第二种语法仅对具有堆栈语义的vor对象有效


另请参见第二种语法称为堆栈语义。当变量超出范围时,它创建对象并“销毁”它

事实上,不会释放内存,但会为对象调用Dispose

因此,使用句点而不是指针运算符->的第二种语法仅对具有堆栈语义的vor对象有效


另请参见

您刚刚被以下内容困住:

这并不定义类型为
MyClass
的变量
obj
。If声明一个函数
obj
,该函数不接受任何参数并返回
MyClass

只需写下以下内容:

MyClass obj;
obj.x = 10.0;
或者这个:

MyClass obj{};
obj.x = 10.0;
两者都很好


obj
使用,尽管
MyClass
没有实现
IDisposable
(即在C++/CLI中没有
~MyClass
成员)。

您刚刚被以下问题困住了:

这并不定义类型为
MyClass
的变量
obj
。If声明一个函数
obj
,该函数不接受任何参数并返回
MyClass

只需写下以下内容:

MyClass obj;
obj.x = 10.0;
或者这个:

MyClass obj{};
obj.x = 10.0;
两者都很好


obj
使用,尽管
MyClass
没有实现
IDisposable
(ie在C++/CLI中没有
~MyClass
成员)。

谢谢您的回答。我想我必须深入了解C++的一些(小)。谢谢你的回答。我想我必须深入了解C++的一些(小)。