麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

面向對象模型一點感想

2019-11-11 07:19:55
字體:
來源:轉載
供稿:網友

基礎知識

1.問題

首先我們用最簡單的程序去探究一下我們的問題,我們都知道結構體他的大小是根據成員變量的大小進行一個操作的,這個我們在C語言中已經得到了驗證,下面我們來對類的大小進行操作。

代碼

#include "iostream"using namespace std;class C1{public:	int i;	int j;	int k;PRivate:};class C2{public:	int i;	int j;	int k;	//變量和靜態變量函數沒有放在一塊	static int m;//存儲到全局的數據區域中public:	//函數是存儲在代碼段	int getK() const { return k; };	void setK(int val){ k = val; };};int main(){	cout << "C1 大小 = %d" << sizeof(C1) << endl;	cout << "C2 大小 = %d" << sizeof(C2) << endl;	system("pause");	return 0;}

最后我們運行可以看到都是12,通過這個我們可以知道類的普通成員屬性是定義這個類大小的。然而我們看到的C2也是12但是我們前面學習了函數也是有一定大小,靜態變量也是有大小的,所以我們發現為什么沒有出現了,原來我們在以前學習的內存四區就曉得,靜態變量它是放在靜態區,而類的成員函數他是放在代碼區域,ps(這里不太懂內存四區的朋友可以去查一下相關的知識)

問題2 C++編譯器的調用

上面的標題沒有說完整,主要是因為文字太長,C++編輯器怎么知道我是那個類的對象在調用代碼區域的成員函數。下面就是關鍵的地方,C++編輯器是怎么對普通成員函數進行處理的

代碼

#include "iostream"using namespace std;class Test{public:	Test(int a, int b){		this->a = a;		this->b = b;	};	~Test(){		cout << "我是析構函數" << endl;	};	int getA()	{		return this->a;	}private:	int a;	int b;};void main(){	Test t(1, 2);//====>t(this,1,2); ===>Test(&t,1,2)	t.getA();//===>getA(&t);	system("pause");}這里面的關鍵點就在定義了一個類,Test t(1,2)的時候C++編輯器在內部就給我們轉換成了一個函數void test_initalize(Test* pthis,int a,int b)然后我們才能在里面使用這個方法,這樣我們就確定了是那個類在調用這個方法,其實我們在看看本質還是C語言的指針作為函數的參數的應用,這個是我覺得可以用C語言替換的一些地方。

總結

1.C++類對象中的成員變量和成員函數是分開存儲的,C語言中的內存四區模型他仍然是有效的!2.C++中類的普通成員函數都是隱藏一個指向當前對象的指針this。3.靜態成員函數,成員變量屬于類。靜態成員函數與普通成員函數的區別靜態成員函數不包含指向具體對象的指針。就是沒有this指針。普通成員函數包含了一個指向具體對象的指針。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 欧美黄色大片免费观看 | 欧美爱爱视频网站 | 红杏亚洲影院一区二区三区 | 日本在线视频一区二区三区 | 黄视频网站免费在线观看 | 操操操操网 | 蜜桃视频日韩 | www.9191.com | 九九黄色| 久草在线高清 | 欧美成人一区免费视频 | 黄污网站在线 | 一级毛片免费高清视频 | 久久99精品久久久久久秒播蜜臀 | av在线播放观看 | 黄色片网站在线免费观看 | 牛牛碰在线视频 | 久久久久一本一区二区青青蜜月 | 国产一区二区欧美精品 | 精品亚洲免费 | 久久国产精品无码网站 | 国产精品视频自拍 | 黄色特级片黄色特级片 | 美女性感毛片 | 91九色视频在线播放 | 天天夜夜操操 | 日本在线不卡一区二区 | 精品国产一区二 | 国产精选久久 | 92自拍视频| 一区国产在线观看 | 七首小情歌泰剧在线播放 | 伦一区二区三区中文字幕v亚洲 | 91av大片 | 色蜜桃av| 久久亚洲精品久久国产一区二区 | 九九热在线视频观看 | 久久国产一级 | 免费在线观看成人av | 男男啪羞羞视频网站 | 欧美成人免费一级 |