Properties C++/CLI? 我在C++代码中看到了属性。我认为它连接到了C++/CLI P>这是什么?它确实与C++ C++连接在一起(非托管C++没有真正的属性概念)。

Properties C++/CLI? 我在C++代码中看到了属性。我认为它连接到了C++/CLI P>这是什么?它确实与C++ C++连接在一起(非托管C++没有真正的属性概念)。,properties,c++-cli,Properties,C++ Cli,属性是行为类似于字段但在内部由getter和setter访问器函数处理的实体。它们可以是标量属性(行为类似于字段)或索引属性(行为类似于数组)。在旧语法中,我们必须在代码中直接指定getter和setter方法来实现属性——这并不像您可能猜到的那么受欢迎。在C++/CLI中,语法更像C#ish,更易于编写和理解 摘自本文: 另请参见关于C++/CLI中的属性 示例代码: private: String^ lastname; public: property String^ Last

属性是行为类似于字段但在内部由getter和setter访问器函数处理的实体。它们可以是标量属性(行为类似于字段)或索引属性(行为类似于数组)。在旧语法中,我们必须在代码中直接指定getter和setter方法来实现属性——这并不像您可能猜到的那么受欢迎。在C++/CLI中,语法更像C#ish,更易于编写和理解

摘自本文:

另请参见关于C++/CLI中的属性

示例代码:

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;
      }
   }

这是微软的托管C++代码或C++/CLI版本。现在,不仅需要编写Get&Set方法,还需要将其定义为属性。我会说,尽管我讨厌额外的输入,但属性的“只读”和“只写”版本相当整洁

但在不管理的C++中不需要!!!p> 例如,您可以在类中编写(将执行完全相同的操作!):


“const”确保它的“GET”是只读的,并且集合是清晰的。无需定义属性或添加字符串^vs.std::String….的混淆

你在哪里看到的?请给出完整的句子。你写道:“不动产是行为类似于场的实体”。什么是字段?@lital:字段只是直接在
结构
中声明的变量。它可以是任何类型(
String
bool
int
,等等)。您有时会看到被称为“成员变量”的字段,因为它们是属于其包含类型(类
或结构
的成员)的变量。属性的要点是公开这些私有字段,以符合面向对象的设计原则。字段是可从类中的任何方法访问的变量。但是在你问什么是类之前,我建议你读一些关于C++中的OOP的文章,如果你试图把你的大脑包围起来,那么在面向对象编程上阅读是一个很好的想法。不过,如果您正在学习C++/CLI,最好还是读一本关于C#中OOP的书。非托管C++和C++ C++之间有很多不同之处,它们不是(c++/CLI属性)不象字段(或成员变量,如果您愿意)。这就是重点。它们使用相同的语法进行访问(除非禁止使用地址),但具有不同的行为。此外,完全可以在非托管C++中编写属性,而不需要使用<代码>属性关键字来帮助您。
std::string GetLastName() const { return lastname;}
void SetLastName(std::string lName) { lastname = lName;}