#include <bits/stdc++.h>
using namespace std;
int c;
static int d;
class e
{
public:
e()
{
cout<<"e"<<endl;
}
int f;
static int g; //類中的static變量不會計入 sizeof中
// private: 聲名爲private的函數繼承中不可用
void pri()
{
cout<<"base_e"<<endl;
}
~e()
{
cout<<"d_base_e"<<endl;
}
};
class ano_e : public e
{
public:
ano_e()
{
cout<<"ano_e"<<endl;
}
};
int main()
{
int a;
cout<<sizeof(a)<<endl;
int *b[4];
cout<<sizeof(*b)<<" "<<sizeof(b)<<" "<<**b<<" "<<sizeof(**b)<<endl;
cout<<sizeof(&*b)<<endl;
cout<<sizeof(c)<<endl;
cout<<sizeof(d)<<endl;
cout<<sizeof(e)<<endl;
ano_e h; //繼承類先運行被繼承的構造函數
h.pri();
}
通過運行代碼我們可以看出,靜態變量爲全局變量時,還是會有sizeof值,在類中並沒有值;另外,繼承類時會先運行被繼承類的構造函數,private繼承時會有問題,後面具體再談面向對象設計。