2012-11-27 115 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作为静态指针即可。