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++中結構體的sizeofC++結構體
- c++ sizeof使用C++
- C/C++——sizeof和strlen的區別C++
- C++學習程式碼--sizeofC++
- C++中的容器類C++
- c++ 中的集合類C++
- C++中類及類的定義 (轉)C++
- C++中的容器類詳解C++
- C/C++——基本資料型別的大小並且sizeof(int *) = 8C++資料型別
- 理解sizeof
- C++中的抽象基類(Abstract Base Class)C++抽象
- C/C++中的字串另類連線C++字串
- C++中的連結串列類的設計C++
- 以下為Windows NT 下的32 位C++程式,請計算sizeof 的值WindowsC++
- 整型字元常量和字元字面量的區別 sizeof(char) 和 sizeof('a')字元
- 【翻譯】c++類中“空成員”的優化C++優化
- C++ 中兩個類互相引用的問題C++
- C++中結構體與類的區別C++結構體
- 使用c++中string類的注意事項C++
- JAVA使用SizeOfJava
- 解析C語言中的sizeofC語言
- sizeof與strlen的區別
- sizeof 與 strlen 的區別
- strlen與sizeof的區別
- 關於sizeof,對空指標sizeof(*p)可以嗎?指標
- C++的代理類C++
- C++ 類的大小C++
- C/C++ 刁鑽問題各個擊破之細說 sizeofC++
- 標準 C++ 中的 string 類的用法總結C++
- 結構體的sizeof問題結構體
- 解析C語言中的sizeof (轉)C語言
- C++類中的常成員和靜態成員C++
- c++中模板_類别範本的宣告和定義C++
- c++中string類成員函式的總結C++函式
- [C++]類的其它特性C++
- C++中類相關知識點總結C++
- binder c++ 類C++
- c++ 模板類C++