類的成員變量放在棧區,靜态成員變量放在靜态/全局存儲區,任何成員函數放在代碼區。
c++編譯器對類進行了如下處理:
例如如下的函數:
#include<iostream>
using namespace std;
class C1{
private:
int a, b, c;
static int d;//這個放在 靜态/全局存儲區
public:
void setabc(){ a = 1; b = 2; c = 3; }//這些都存放在代碼區
static int getd(){
return d;
}
};
int C1::d = 4;
int main(){
C1 a;
cout<<a.getd()<<endl;
cout << sizeof(C1)<<endl;
cout << sizeof(a)<<endl;
system("pause");
return 0;
這個函數中将類的成員變量抽出來。
建立個結構體
struct C1{
int a, b, c;
int C1_d;
void C1_setabc(a->this)//這裡多加了個this 指針
{
a = 1; b = 2; c = 3;
}
int C1_getd(){
本文轉自 神迹難覓 51CTO部落格,原文連結:http://blog.51cto.com/ji123/1919808,如需轉載請自行聯系原作者