在c 中如何用new生成建構函式帶引數的類陣列

2021-05-14 09:58:42 字數 1214 閱讀 9063

1樓:

1.**如下:#include

#include

using namespace std;

class foo

~foo()

private:

int id_;

};int main()

;// 第一種方法;}

cout << "-----------------" << endl;

// 第二種方法

// ...use b

for( size_t i=0; i<2; ++i )

}cout << "-----------------" << endl;

// 這估計就是你要的了,和第二種方法一樣

// ...use b

for( size_t i=0; i<2; ++i )

operator delete( p );

}return 0;

} 2.c++ new用法之一 new運算子

最常用的是作為運算子的new,比如:

string *str = new string(「test new」);

作為運算子,new和sizeof一樣,是c++內建的,你不能對它做任何的改變,除了使用它。

new會在堆上分配一塊記憶體,並會自動呼叫類的建構函式。

c++ new用法之二 new函式

第二種就是new函式,其實new運算子內部分配記憶體使用的就是new函式,原型是:

void *operator new(size_t size);

new函式返回的是一個void指標,一塊未經初始化的記憶體。如你所見,這和c語言的malloc行為相似,你可以過載new函式,並且增加額外的引數,但是必須保證第一個引數必須是size_t型別,它指明瞭分配記憶體塊的大小,c++允許你這麼做,當然一般情況下這是不必要的。如果過載了new函式,在使用new操作符時呼叫的就是你過載後的new函式了。

2樓:新都乖乖豬

c++不支援直接構造 建構函式帶引數的陣列,也就是說如果你想要建立一個陣列,必須要保證建立型別有預設的建構函式。

3樓:匿名使用者

#include

using namespace std;

class a

void print()

private:

int i;

};int main()

C怎麼用建構函式來傳值,c 如何用建構函式來傳遞引數

public form1 string value c 如何用建構函式來傳遞引數 例如你的主窗體中有一個按鈕,在他的單擊事件裡寫入 f3 f new f3 this.textbox1.text f.show this.hide 在f3的窗體 中寫入 private string texts publ...

c 中的拷貝建構函式的問題,c 拷貝建構函式的問題

拷貝建構函式多被用來實現類物件的深拷貝。例如 class a 不定義拷貝建構函式時,你如果對兩個物件賦值,就會是淺拷貝,即 簡單的成員變數相等。a a,b a b 則,相當於作了a.p b.p,a,b的p指標指向了同一個地址,但是資料並沒有拷貝一份,這叫做淺拷貝。所以定義拷貝建構函式 a a a 然...

c如何在建構函式中啟動執行緒,從命名管道讀取資料

1 c 多執行緒也可以使用unix c的庫函式,pthread mutex t,pthread create,pthread cond t,pthread detach,pthread mutex lock unlock,等等。在使用多執行緒的時候,你需要先建立執行緒,使用pthread creat...