
using (SomeClass x = new SomeClass(foo)){ // ...} 这是:
{ SomeClass x(foo); // ...} 但有没有类似简洁和类似RAII的方式来表达这一点:
using (SomeClass x = SomeFunctionThatReturnsThat(foo)){ // ...} 要么:
SomeClass x = SomeFunctionThatReturnsThat(foo);using (x){ // ...} ?我最接近的工作示例是:
SomeClass^ x = SomeFunctionThatReturnsThat(foo);try{ // ...}finally{ if (x != nullptr) { delete x; }} 但这似乎不太好.
解决方法msclr::auto_handle<>是托管类型的智能指针: #include <msclr/auto_handle.h>{ msclr::auto_handle<SomeClass> x(SomeFunctionThatReturnsThat(foo)); // ...}// orSomeClass^ x = SomeFunctionThatReturnsThat(foo);{ msclr::auto_handle<SomeClass> y(x); // ...} 总结 以上是内存溢出为你收集整理的.net – C/C++LI堆栈语义相当于C#的现有对象使用语句?全部内容,希望文章能够帮你解决.net – C/C++LI堆栈语义相当于C#的现有对象使用语句?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)