淘宝客服推销做网站的技巧/深圳知名网络优化公司
目录
1.空类所占的内存大小是多少?为什么是这么多?
2.一般带成员变量的类的对象所占的内存大小是多少?如何计算?
3.下面三个类的对象各占多少个字节?为什么?
4.下面Test类的对象又占多大的内存呢?为什么?
5.下面TestC类的对象又占多大的内存呢?为什么?
1.空类所占的内存大小是多少?为什么是这么多?
class EmptyClass
{};int _tmain(int argc, _TCHAR* argv[])
{cout<<"空类的内存大小为:"<<sizeof(EmptyClass)<<endl<<endl<<endl;return 0;
}
2.一般带成员变量的类的对象所占的内存大小是多少?如何计算?
class FruitA
{
private:int m_iWeight;char m_bufName[5]; short m_id;
};class FruitB
{
private:short m_id;int m_iWeight; char m_bufName[5];
};int _tmain(int argc, _TCHAR* argv[])
{cout<<"FruitA的内存大小为:"<<sizeof(FruitA)<<endl;cout<<"FruitB的内存大小为:"<<sizeof(FruitB)<<endl<<endl<<endl;return 0;
}
3.下面三个类的对象各占多少个字节?为什么?
class FruitC
{
private:int m_iWeight;char m_bufName[5]; short m_id;public:
};class FruitD
{
private:int m_iWeight;char m_bufName[5]; short m_id;public:virtual void SetName(char *bufName){}
};class FruitE
{
private:int m_iWeight;char m_bufName[5]; short m_id;public:virtual void SetName(char *bufName){}virtual void SetWeight(int weight){}
};int _tmain(int argc, _TCHAR* argv[])
{cout<<"FruitC的内存大小为:"<<sizeof(FruitC)<<endl<<endl;cout<<"FruitD的内存大小为:"<<sizeof(FruitD)<<endl<<endl;cout<<"FruitE的内存大小为:"<<sizeof(FruitE)<<endl<<endl;return 0;
}
4.下面Test类的对象又占多大的内存呢?为什么?
class Test
{
public: void Func1(){}void Func2(){}
};int _tmain(int argc, _TCHAR* argv[])
{cout<<"Test的内存大小为:"<<sizeof(Test)<<endl<<endl;return 0;
}
5.下面TestC类的对象又占多大的内存呢?为什么?
class BaseA
{virtual void FuncA(){}int a;
};class BaseB
{virtual void FuncB(){}int b;
};class TestC : public BaseA, public BaseB
{};int _tmain(int argc, _TCHAR* argv[])
{cout<<"TestC的内存大小为:"<<sizeof(TestC)<<endl<<endl;return 0;
}
问题的答案将在我的另一篇博文里面揭晓,链接是:
https://blog.csdn.net/jolin678/article/details/119140205
请大家先思考,再看答案!