c++ - .net c++/cli 获取指针的内容

标签 c++ .net pointers c++-cli

我想学习以下代码在c++/cli中的对应

People* my_people = new People("name","lname");
People* second_people;
&second_people = &my_people;

//

People^  my_people = gcnew People("name","lname");
People^ second_people;
// what is this line?

其实我想把my_people的内容赋值给second_people。 所以当我更改my_people的内容时,second_people的内容必须相同。

最佳答案

首先,您的第一段代码无法编译且毫无意义。 second_people 不指向任何对象,因此您不能将拷贝分配给不存在的对象。相反,你应该写

People* my_people = new People("name","lname");
People* second_people = new People(*my_people);

假设您已经实现了 Rule of Three如你所愿。

现在回到问题。对于 C++/Cli,您还应该像这样实现复制构造函数和赋值运算符

People(const People % other) { ... }
const People % operator = (const People % other) { ... ; return *this;}

如果我们将此应用于您的问题:

People^  my_people = gcnew People("name","lname");
People^ second_people = gcnew People(*my_people);

关于c++ - .net c++/cli 获取指针的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8738891/

相关文章:

c++ - 如何正确找出lambda的返回类型

.net - NUnit,如何在运行测试套件之前和之后执行源代码

c# - 尝试使用 C# SpellCheck 类

由于错误的指针导致的 c 段错误

c++ - 具有针对不同输入表现不同的内部函数的类模板

C++类变量声明和使用顺序?

c++ - 使用大括号表示法 C++ 填充动态数组

.net - Rx .NET : Filter observable until task is done

c - C语言 : pointer to integer conversion assigning to 'char' from 'char [2]'

c - 如何理解这些复杂的指针声明?