成員變數和成員函式是分開儲存的
阿新 • • 發佈:2021-02-16
技術標籤:C++面向物件
#include<iostream>
#include<string>
using namespace std;
class Person {
public:
};
void test01() {
Person p;
cout << "空物件所佔記憶體空間" << sizeof(p) << endl;
}
int main() {
test01();
return 0;
}
//C++編譯器會給每個空物件也分配一個位元組空間,是為了區分空物件佔記憶體的位置,每個空物件也要有一個獨一無二的記憶體空間。
在類中加入一個非靜態成員
#include<iostream>
#include<string>
using namespace std;
class Person {
public:
int m_A;//非靜態成員變數
};
void test01() {
Person p;
cout << "空物件所佔記憶體空間" << sizeof(p) << endl;
}
int main() {
test01();
return 0;
}
在類中再加入一個靜態成員
#include<iostream>
#include<string>
using namespace std;
class Person {
public:
int m_A;//非靜態成員變數
static int m_B;
};
void test01() {
Person p;
cout << "空物件所佔記憶體空間" << sizeof(p) << endl;
}
int main() {
test01();
return 0;
}
發現執行結果還是和上次一樣,原因是靜態成員變數不屬於類物件,非靜態成員變數屬於類物件
再加入非靜態成員函式結果還是和上次一樣,表明函式也不屬於類物件,進而表明,成員函式和成員變數是分開放的