我在C ++代码中用术语property
看到了。我认为它与C ++ / CLI相关联。
究竟是什么?
答案 0 :(得分:3)
它确实连接到C ++ / CLI(非托管C ++实际上并没有属性的概念)。
属性是行为类似于字段但由getter和setter访问器函数内部处理的实体。它们可以是标量属性(它们的行为类似于字段)或索引属性(它们的行为类似于数组)。在旧的语法中,我们必须直接在我们的代码中指定getter和setter方法来实现属性 - 并不像你猜的那么好。在C ++ / CLI中,语法更多是C#-ish,更易于编写和理解。
取自本文:http://www.codeproject.com/KB/mcpp/CppCliProperties.aspx
另请参阅有关C ++ / CLI中属性的MSDN。
示例代码:
private:
String^ lastname;
public:
property String^ LastName
{
String^ get()
{
// return the value of the private field
return lastname;
}
void set(String^ value)
{
// store the value in the private field
lastname = value;
}
}
答案 1 :(得分:1)
是的,这确实是微软托管c ++代码或C ++ / CLI的版本。现在你不仅要写Get&设置方法,但您还需要将其定义为属性。 我会说,我讨厌额外输入“只读”和“只写”版本的财产非常整洁。
但是在不受管理的c ++中没必要!!!
例如,你可以写一个类(将做同样的事情!):
std::string GetLastName() const { return lastname;}
void SetLastName(std::string lName) { lastname = lName;}
'const'确保它'GET'是只读的,并且该组清晰。无需定义属性或添加String ^与std :: string ....
的混淆