C++中類的sizeof
#include <iostream>
using namespace std;
#pragma pack(2)
class A{
int i; //4
union U{ //14
char buff[13];
int i;
}u; //注意,這裡是申明瞭一個union變數
enum{red, green, blue} color; //4
void foo() {} //0
typedef char* (*f)(void*); //0
int g(){int i;} //0
};
class B{
B(){} //0
virtual g(){} //4
virtual f(){} //所有虛擬函式放在一張虛表中,指向虛表的指標的4位元組
};
class C{};
int main(){
cout<<sizeof(A)<<endl; //8
cout<<sizeof(B)<<endl; //4
cout<<sizeof(C)<<endl; //1
return 0;
}
再看一個:
#include <iostream>
using namespace std;
class A {
public:
int b;
char c; //注意地址對齊
virtual void print(){
cout<<"this is father's function!"<<endl;
}
};
class B : A {
public:
virtual void print(){
cout<<"this is children's function!"<<endl;
}
};
int main(void){
cout<<sizeof(A)<<","<<sizeof(A)<<endl; //12,12
return 0;
}
相關文章
- C++中的容器類C++
- 理解sizeof
- 以下為Windows NT 下的32 位C++程式,請計算sizeof 的值WindowsC++
- sizeof()的結果值
- C++中的抽象基類(Abstract Base Class)C++抽象
- JAVA使用SizeOfJava
- 解析C語言中的sizeofC語言
- sizeof與strlen的區別
- 關於sizeof,對空指標sizeof(*p)可以嗎?指標
- 【翻譯】c++類中“空成員”的優化C++優化
- C++ 類的大小C++
- C++的代理類C++
- C++類中的常成員和靜態成員C++
- c++類與類的聚合(Aggregation)關係C++
- C++結構體內幕揭秘:sizeof之謎與記憶體佈局探秘C++結構體記憶體
- C++ 類 & 物件C++物件
- C++分類C++
- c語言中sizeof詳解C語言
- c++類的靜態成員C++
- C++:類的成員函式C++函式
- C++:類的靜態成員C++
- 【C++】兩個類的相互引用C++
- [C++之旅] 7 C++類和物件C++物件
- C++標準庫中檔案流類的繼承關係C++繼承
- 關於C++中物件與類的詳解及其作用詳解C++物件
- c++類和物件C++物件
- C++ | 類繼承C++繼承
- C++ 類和物件C++物件
- 29.qt quick-在QML中呼叫C++類QTUIC++
- C# sizeof 計算規則C#
- C++類和物件是什麼?C++類和物件詳解C++物件
- c++中string類物件和字元陣列之間的相互轉換C++物件字元陣列
- 載入NT驅動的類 C++C++
- c++ 類的函式引用 指標C++函式指標
- C++派生類的拷貝構造C++
- 一個隨機數的類c++隨機C++
- C++ 類别範本的寫法C++
- C++中::的作用C++
- C++中的&和&&C++