考虑下面的代码段:C++:静态指针,静态对象和动态存储器分配
#include <iostream>
using namespace std;
class p
{
public:
int* q;
p()
{
q = new int(100);
}
~p(){
delete q;
}
};
static p* p1 = new p();
static p p2;
int main() {
// your code goes here
std::cout << *(p1->q);
std::cout << *(p2.q);
delete p1;
}
p1和p2是静态的VARS,它们必须存储在静态段。
因为p1是一个指针,只是指针地址存储在静态段或者它指向的对象中?
p2是一个普通的静态对象,但它包含一个动态分配的成员变量q,所以q也存储在静态段中?
不,没有。更重要的是,你不应该在意。 –
为什么不运行代码并亲自查看? – CrakC
@CrakC对于C++来说,这通常不是一个好主意。 – Quentin