1. 程式人生 > >類對象的動態分配以及釋放

類對象的動態分配以及釋放

數據 初始化 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; }

並且記住釋放分配的空間。

類對象的動態分配以及釋放