2012-11-27 132 views
0

我有一個關於如何爲類中的靜態變量動態分配內存的問題。 考慮這個例子爲類中的靜態變量動態分配內存

class my_class { 
    static int *ptr_to_int; 
    // Don't care 
}; 

如何爲ptr_to_int分配內存?

+0

你爲什麼要這麼做? – melpomene

+1

這個問題與它是一個指針有什麼關係嗎?你可以做到這一點,如果它是一個普通的舊'int'? – chris

+0

與爲其他變量分配動態內存的方式相同:使用'new'或'new []'。這些機制爲什麼不能爲你工作有一個具體原因嗎? –

回答

2

在一個單一的實現文件:

int* my_class::ptr_to_int = new int; 

爲什麼?你真的需要一個指針嗎?有什麼問題只是

class my_class { 
    static int actual_int; 
    // Don't care 
}; 
+0

謝謝,沒有真正的原因。我正在考慮如何初始化一個靜態指針,並想不起來。它也不限於int *,如果它是巨大的結構,那麼我不想在創建第一個實例之前分配內存(儘管沒有意義)。我沒有這個用例。 – user1855605

0

這裏的類名僅僅作爲您的目的範圍名稱。只需使用my_class :: ptr_to_int作爲靜態指針即可。