获取class占用的内存空间
class abce{public: abce(){ a = 3; b = 33.33; c = "你是一条虫"; e = 13222.55; }public: int a; float b; string c; double e;};void main(){ abce a1; a1.c = "虫虫虫虫虫虫虫虫虫虫虫虫虫虫虫虫虫虫虫虫虫虫虫虫虫虫虫虫虫虫虫虫虫虫虫虫虫虫";}
#include <iostream>#include <string>#include <fstream>using namespace std;class abce{public: abce(){ a = 3; b = 33.33f; c = "你是一条虫"; e = 13222.55; } unsigned int GetDataSizeSum() { return sizeof(a) + sizeof(b) + c.size() + sizeof(e); }public: int a; float b; string c; double e;};int main(){ abce a1; a1.c = "虫虫虫虫虫虫虫虫虫虫虫虫虫虫虫虫虫虫虫虫虫虫虫虫虫虫虫虫虫虫虫虫虫虫虫虫"; cout << "写入文件的实例 a1 :" << endl; cout << "a1.a:" << a1.a << endl; cout << "a1.b:" << a1.b << endl; cout << "a1.c:" << a1.c << endl; cout << "a1.e:" << a1.e << endl; cout << endl; unsigned int size = a1.GetDataSizeSum(); char *data = new char[size]; memcpy(data, &(a1.a), sizeof(a1.a)); memcpy(data+sizeof(a1.a), &(a1.b), sizeof(a1.b)); memcpy(data+sizeof(a1.a)+sizeof(a1.b), a1.c.c_str(), a1.c.size()); memcpy(data+sizeof(a1.a)+sizeof(a1.b)+a1.c.size(), &(a1.e),sizeof(a1.e)); ofstream ofs("test.txt"); ofs.write(data,size); ofs.close(); memset(data,0,size); ifstream ifs("test.txt"); ifs.read(data,size); ifs.close(); abce a2; cout << endl; cout << "从文件构造前的实例 a2 :" << endl; cout << "a2.a:" << a2.a << endl; cout << "a2.b:" << a2.b << endl; cout << "a2.c:" << a2.c << endl; cout << "a2.e:" << a2.e << endl; cout << endl; memcpy(&(a2.a), data, sizeof(a1.a)); memcpy(&(a2.b), data+sizeof(a2.a), sizeof(a2.b)); string temp(data+sizeof(a2.a)+sizeof(a2.b),data+sizeof(a2.a)+sizeof(a2.b)+a1.c.size()); a2.c = temp; memcpy(&(a2.e), data+sizeof(a2.a)+sizeof(a2.b)+a2.c.size(), sizeof(a2.e)); cout << endl; cout << "从文件构造出的实例 a2 :" << endl; cout << "a2.a:" << a2.a << endl; cout << "a2.b:" << a2.b << endl; cout << "a2.c:" << a2.c << endl; cout << "a2.e:" << a2.e << endl; cout << endl; return 0;}// 输出/*写入文件的实例 a1 :a1.a:3a1.b:33.33a1.c:虫虫虫虫虫虫虫虫虫虫虫虫虫虫虫虫虫虫虫虫虫虫虫虫虫虫虫虫虫虫虫虫虫虫虫虫a1.e:13222.5从文件构造前的实例 a2 :a2.a:3a2.b:33.33a2.c:你是一条虫a2.e:13222.5从文件构造出的实例 a2 :a2.a:3a2.b:33.33a2.c:虫虫虫虫虫虫虫虫虫虫虫虫虫虫虫虫虫虫虫虫虫虫虫虫虫虫虫虫虫虫虫虫虫虫虫虫a2.e:13222.5*/