#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继承时会有问题,后面具体再谈面向对象设计。