c# - 时间:2019-03-08 标签:c++c#equivaltentobjectinstance

标签 c# c++ pointers reference

C#

MyClass myClass = new MyClass(); 

C++

MyClass* myClass = new MyClass();

C# 代码在内部是否等同于 C++ 代码? C# 代码中的 myClass 是指代对象还是指针?

最佳答案

表达此 C# 代码意图的更准确方法

var myClass = new MyClass(); 

在 C++ 中可能是

auto myClass = std::make_shared<MyClass>();

(或者可能是 std::shared_ptr<MyClass> myClass(new MyClass()); )。

当然,C# 使用的东西完全不同于std::shared_ptr (垃圾收集),但程序员看到的大致相同——至少对于这个非常简单的示例而言。

您的原始 C++ 代码会造成内存泄漏,这在 C# 中不会那么容易发生。

关于c# - 时间:2019-03-08 标签:c++c#equivaltentobjectinstance,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43530841/

相关文章:

c# - 具有不同数量对象的 WPF MVVM View 。如何?

c++ - 是否可以在其范围之外访问局部变量的内存?

检查我对指针/结构和数组的理解

c - 如何在 C 中以可移植的方式管理内存对齐和通用指针算法?

指针符号的 C 解释?

c# - EF4 - 多对多关系,使用 contains 和 List<int> 进行查询

c# - 将列表中的值与另一个列表中的特定总和进行比较的最快方法是什么?

c# - 找不到类型或命名空间名称 'MySqlConnection'(是否缺少 using 指令或程序集引用?)

c++ - 如何将用 C++ 编写并使用 Linux GCC 编译的程序移植到 Windows?

c++ - 知道将哪个ostream传递给函数c++