Rob*_*cks 1 .net c++ syntax properties visual-c++
我需要在托管C++项目中使用手写getter/setter定义属性,在可以从C#.NET项目中使用的类中.
关于该主题的代码项目文章推荐__property float Volume;过时的,现在归类为/crl:oldSyntax.
C++文章的Open Standard管理扩展说明定义属性就像property float Volume;自动生成一个我不想要或不需要的支持字段.
简单地定义类似property float Volume;编译的属性/clr,但尝试添加像float Mixer::Volume::get(){ .. }throw 这样的手写getter/setter Error C2084: function X already has a body.
那么,在没有支持字段的情况下定义只读或读/写属性的正确方法是什么,以及使用自定义构建的手写getter/setter方法?
您已经找到了自己的标题版本.如果要在cpp文件中实现getter和setter,语法如下:
///////////////////////
// Foo.h:
///////////////////////
ref struct Foo
{
property float Volume
{
float get();
private: void set(float value);
}
private:
float m_backingField;
}
///////////////////////
// Foo.cpp:
///////////////////////
float Foo::Volume::get()
{
return m_backingField;
}
void Foo::Volume::set(float value)
{
m_backingField = value;
}
Run Code Online (Sandbox Code Playgroud)
编辑:一些其他信息:
__property关键字来自托管扩展,现已弃用.| 归档时间: |
|
| 查看次数: |
2004 次 |
| 最近记录: |