如何在建構函式中用一個數組初始化另一個數組
- 2021-09-26
假設有一個數組,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;
}
thing(int i=x):i(i){}
把建構函式換成這個東東,把x的值替換x,直接thing a[1000];就可以了。。
這樣的話,不帶引數不會呼叫預設建構函式,而會呼叫這個預設引數的函式。
哦這樣的話 你可以在thing里弄個類靜態變數static n; 然後再外面初始化thing::n=0;
初始化的時候thing():i(n){}就可以了!~全域性變數也可以達到這個效果。
要麼 你就用迴圈吧。。。