Zoo*_*mIn 1 .net c# c++ memory-management console-application
以下是我编写的代码
Calc[] calculators = new Calc[10];
calculators[0].AddToSum(10);(编写相应的类和方法).但是我得到了"对象引用未设置为对象的实例"异常.然后通过一些研究我通过执行以下操作删除了异常.
for (int i = 0; i < 10; i++)
{
calculators[i] = new Calc();
}
Run Code Online (Sandbox Code Playgroud)
有人可以解释为什么我们需要再次分配内存,这与c/c ++不同.这就是我在c ++中的表现:
Calculator *calc=new Calculator[10]//I know I need to check for std::bad_alloc exception
calculators[0].AddToSum(10);
delete[] calc;
Run Code Online (Sandbox Code Playgroud)
在C#中,有引用类型,并且有值类型.类是引用类型.创建引用类型的变量时,您将创建引用,而不是对象.引用的默认状态为null.如果您希望它引用一个对象,则必须使用new或使用另一个初始化引用来显式初始化它.
C++没有这种区别.每种类型都是值类型(尽管您也可以创建对任何类型的引用).创建值类型的变量时,您将创建一个对象.
| 归档时间: |
|
| 查看次数: |
247 次 |
| 最近记录: |