创建无GCNEW的C /CLI对象
Creating C++/CLI objects without gcnew
建议在没有gcnew
的情况下创建本地C /CLI对象?string
对象str1
和str2
的哪些创建是正确的?
void foo()
{
System::String str1("string 1");
System::String^ str2 = gcnew System::String("string 2");
// Do something with the strings
}
创建一个没有gcnew
的参考类型对象(ref class
)称为堆栈语义。
这是指在堆栈上创建对象的普通C 功能。它还可以启用RAII:如果您的对象将实现IDisposable
(或以C /CLI术语为destructor),则当您离开声明的范围(通常或通过异常传播)离开范围时,将调用其Dispose
(destructor)方法。就像普通的C 破坏者一样。
在引擎盖下,该对象是在托管堆上创建的,即使在堆栈语义下也是如此。
因此,使用RAII的堆栈语义有一个明显的好处。如果您的对象不可一次性,则您的 May 最终会以较少的代码(您使用较少的^
字符并使用.
而不是->
),但可能会使读者感到困惑。这是您的电话。
相关文章:
- 什么时候调用组成单元对象的析构函数
- 对RValue对象调用的LValue ref限定成员函数
- CMake-按正确顺序将项目与C运行时对象文件链接
- 空基优化子对象的地址
- 将对象数组的引用传递给函数
- 将 C# 对象(包含静态对象成员)作为参数传递给 C++/CLI 程序
- 将 C++/CLI 对象指针传递给本机对象方法
- C++/CLI:返回对 C#.NET 应用中非托管对象的引用
- 如何将CIMG图像对象从C /CLI传递到C#
- 创建无GCNEW的C /CLI对象
- 反向调用,从本机 C/C++ DLL 调用 C# 对象的方法,而无需 CLI/CLR
- C++/CLI:返回对非托管对象的引用
- 对象引用未设置为对象的实例 (C++/CLI)
- 从 CLI 包装器检索本机对象
- 使用 C++/CLI 将对象从 C# 传递到C++或将 Object^ 转换为 Object
- 在修改CLI对象的函数中传递CLI对象
- 删除管理对象c++/cli
- 在c++ /CLI中创建c++对象列表
- c++/cli windows窗体在vs2012中,对象数组是不可能的
- Visual studio 2013 -如何在已经包含#include的对象上添加一个对象?c++ / cli