如何在建構函式中用一個數組初始化另一個數組

  • 作者:由 匿名使用者 發表于 體育
  • 2021-09-26

如何在建構函式中用一個數組初始化另一個數組 匿名使用者 1級 2010-05-12 回答

假設有一個數組,int x[10];

你可以這樣做:int * y = new int[10]; memcpy(y, x, sizeof(int) * 10);

這樣y就變成了一個內容和x一樣的陣列,採用記憶體複製方式初始化

class CString {

private:

char * x;

CString(const char * str = 0);

};//end CString

CString::CString(const char * str)

{

if(str) {

size_t len = strlen(str);

x = new char[len];

memset(x, 0, len);

memcpy(x, str, len);

}else

x = 0;

}

如何在建構函式中用一個數組初始化另一個數組 角色゛ 1級 2010-05-12 回答

thing(int i=x):i(i){}

把建構函式換成這個東東,把x的值替換x,直接thing a[1000];就可以了。。

這樣的話,不帶引數不會呼叫預設建構函式,而會呼叫這個預設引數的函式。

哦這樣的話 你可以在thing里弄個類靜態變數static n; 然後再外面初始化thing::n=0;

初始化的時候thing():i(n){}就可以了!~全域性變數也可以達到這個效果。

要麼 你就用迴圈吧。。。

Top