#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继承时会有问题,后面具体再谈面向对象设计。
本文通过一个具体的C++代码示例,展示了类的定义、静态成员变量的特点、类的大小计算方法以及继承机制下的构造函数调用顺序。特别强调了私有成员函数在继承中的不可访问性。
1680

被折叠的 条评论
为什么被折叠?



