天天看點

c++編譯器對類的處理

類的成員變量放在棧區,靜态成員變量放在靜态/全局存儲區,任何成員函數放在代碼區。

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,如需轉載請自行聯系原作者

繼續閱讀