Pointers 如何在C+中设置非指向对象的属性+/CLI
以下是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
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++的一些(小)。