考慮下面的代碼段: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