類對象的動態分配以及釋放
阿新 • • 發佈:2018-06-03
數據 初始化 CA lock code namespace 不同的 () 釋放
類對象的動態分配
我們在做有關類的題目的時候,一定會涉及到對象這個概念,一般我們定義不同的對象,如類是汽車的話,會定義私家車,豪華車,,等,但如果有私家車有多個切編譯之前不知道的話,怎麽辦?因此,就需要動態分配對象了。
這裏只講通過 operator new 來動態分配並且初始化對象數據的方法,因為new這個方法必須需要再寫
set函數,也就是重新寫賦數據成員的函數,比較繁瑣。
#include<iostream>
using namespace std;
class Car
{
private:
int length;
public:
Car()
{
}
Car(int len)
{
length = len;
}
void show()
{
cout << length << " ";
}
};
int main()
{
int len;
int n; //出租車數量
cin >> n;
Car *taxi = (Car*)operator new(n * sizeof(Car));
for (int i = 0; i < n; i++)
{
cin >> len;
new(&taxi[i]) Car(len);
}
for (int i = 0; i < n; i++)
taxi[i].show();
delete[]taxi;
return 0;
}
並且記住釋放分配的空間。
類對象的動態分配以及釋放