我有一个类似的功能:
MyClass1 mc1, mc0; //Single Object
MyClass2 mc2; //vector of MyClass1
mc1.Init(1);
mc2.Add(mc1);
mc1 = mc0;
mc1.Init(2);
mc2.Add(mc1);
mc1 = mc0;
//so on......
Run Code Online (Sandbox Code Playgroud)
我实际上想要mc1 = null
在步骤开始之前设置但不能在C++中这样做.所以我保持一个从未初始化mc0
的做法.不要以为这是一个优雅的解决方案.我的背景主要是关于C#和ASP.NET的管理.(我认为unmanaged
C++ 的属性是我不能做object = null的原因.对吧?)
这与语言是否被管理无关,而是与C++的对象引用的不同方法无关.在C#中,声明MyClass mc;
会产生一个可能引用 a MyClass
或be 的变量null
.在C++中,MyClass mc;
生成一个变量,它是一个MyClass
- 对象实例完全包含在变量中,因此,变量不能null
.如果你想要一个引用,你通常会使用一个指针:MyClass * mc = NULL;
或MyClass * mc = new MyClass();
.
归档时间: |
|
查看次数: |
6474 次 |
最近记录: |