成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

類的認識及使用

alexnevsky / 1880人閱讀

摘要:注意空類的大小,空類比較特殊,編譯器給了空類一個字節(jié)來唯一標識這個類。如果一個類沒有對象,那么它的對象需要給進行占位,標識對象存在,這不存儲有效數(shù)據(jù)。

類的使用

引用

C++兼容C結(jié)構(gòu)體的語法
C++中的struct已經(jīng)不僅僅是結(jié)構(gòu)體,struct已經(jīng)同時升級成類。

類的定義

class className{ // 類體:由成員函數(shù)和成員變量組成 }; // 一定要注意后面的分號

class為定義類的關(guān)鍵字,ClassName為類的名字,{}中為類的主體,注意類定義結(jié)束時后面分號。
類中的元素稱為類的成員:類中的數(shù)據(jù)稱為類的屬性或者成員變量; 類中的函數(shù)稱為類的方法或者成員函數(shù)。
struct可以定義類,但在C++中更喜歡用class來代替

C語言面向過程——數(shù)據(jù)和方法是分離的
C++面向?qū)ο蟆獢?shù)據(jù)和方法是封裝在一起的

struct和class的區(qū)別


總結(jié):

  • C++實現(xiàn)封裝的方式:用類將對象的屬性與方法結(jié)合在一塊,讓對象更加完善,通過訪問權(quán)限選擇性的將其接口提供給外部的用戶使用。
  • 訪問限定符:public(公有)、protected(保護)、private(私有)
  • public修飾的成員在類外可以直接被訪問
  • protected和private修飾的成員在類外不能直接被訪問(此處protected和private是類似的)
  • 訪問權(quán)限作用域從該訪問限定符出現(xiàn)的位置開始直到下一個訪問限定符出現(xiàn)時為止
  • class的默認訪問權(quán)限為private,struct為public(因為struct要兼容C)

上方代碼改正:

class stack{public:   //公有(可在類外面直接訪問)	void StackInit()	{	}	void StackPush(int x)	{	}private:    //私有(不可在類外面直接訪問)	int* a;	int top;	int capacity;};int main(){	stack st;	st.StackInit();	st.StackPush(1);	return 0;}

封裝


總結(jié):

  • 類的定義和設(shè)計就體現(xiàn)了封裝
  • 面向?qū)ο蟮娜筇匦裕?strong>封裝、繼承、多態(tài)(最為出名的)、抽象、反射(Java)。
  • 封裝:將數(shù)據(jù)和操作數(shù)據(jù)的方法進行有機結(jié)合,隱藏對象的屬性和實現(xiàn)細節(jié),僅對外公開接口來和對象進行交互。
  • 封裝本質(zhì)是一種管理。

類的作用域

改正:將Queue.cpp文件

#define _CRT_SECURE_NO_WARNINGS 1#include"Queue.h"void Queue::QueueInit()// 這里需要指定QueueInit是屬于Queue這個類域{}void Queue::QueuePush(int x){}void Queue::QueuePop(){}

總結(jié):

  • 類中的成員函數(shù)在聲明和定義分離時需要使用 :: 作用域解析符指明成員屬于哪個類域。
  • 短小的成員函數(shù),直接在類里面定義,直接被看成內(nèi)聯(lián)函數(shù)inline
  • 長的函數(shù),聲明和定義分離

類的實例化


總結(jié):

  • 用類類型創(chuàng)建對象的過程,稱為類的實例化
  • 類只是一個模型一樣的東西,限定了類有哪些成員,定義出一個類并沒有分配實際的內(nèi)存空間來存儲它
  • 一個類可以實例化出多個對象,實例化出的對象 占用實際的物理空間,存儲類成員變量


類實例化出對象就像現(xiàn)實中使用建筑設(shè)計圖建造出房子,類就像是設(shè)計圖,只設(shè)計出需要什么東西,但是并沒有實體的建筑存在,同樣類也只是一個設(shè)計,實例化出的對象才能實際存儲數(shù)據(jù),占用物理空間。

計算類對象的大小

知識點:

  • 計算類型大小或者是類對象,只考慮成員變量,因為對象中,只存了成員變量,沒有存成員函數(shù)
  • 對于類對象:只保存成員變量,成員函數(shù)存放在公共的代碼段。
  • 一個類的大小,實際就是該類中”成員變量”之和,當然也要進行內(nèi)存對齊。
  • 注意空類的大小,空類比較特殊,編譯器給了空類一個字節(jié)來唯一標識這個類。
  • 如果一個類沒有對象,那么它的對象需要給1byte進行占位,標識對象存在,這1byte不存儲有效數(shù)據(jù)

結(jié)構(gòu)體內(nèi)存對齊規(guī)則:

https://blog.csdn.net/AI_ELF/article/details/117877990?spm=1001.2014.3001.5501

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/122187.html

相關(guān)文章

  • 【C++】初識類和對象

    摘要:三類的定義類體由成員函數(shù)和成員變量組成一定要注意后面的分號為定義類的關(guān)鍵字,為類的名字,中為類的主體,注意類定義結(jié)束時后面分號。在類和對象階段,我們研究類的封裝特性。 ...

    garfileo 評論0 收藏0
  • Java開發(fā)

    摘要:大多數(shù)待遇豐厚的開發(fā)職位都要求開發(fā)者精通多線程技術(shù)并且有豐富的程序開發(fā)調(diào)試優(yōu)化經(jīng)驗,所以線程相關(guān)的問題在面試中經(jīng)常會被提到。將對象編碼為字節(jié)流稱之為序列化,反之將字節(jié)流重建成對象稱之為反序列化。 JVM 內(nèi)存溢出實例 - 實戰(zhàn) JVM(二) 介紹 JVM 內(nèi)存溢出產(chǎn)生情況分析 Java - 注解詳解 詳細介紹 Java 注解的使用,有利于學(xué)習(xí)編譯時注解 Java 程序員快速上手 Kot...

    LuDongWei 評論0 收藏0
  • 認識構(gòu)造函數(shù)

    摘要:創(chuàng)建構(gòu)造函數(shù)對象有屬性和方法,如果多個函數(shù)的屬性和方法均相似,我們就可以將其歸為一個類,使用的時候,就可以直接調(diào)用。要設(shè)置專屬屬性和方法,很簡單,直接在構(gòu)造函數(shù)內(nèi)添加就行了創(chuàng)建專屬屬性創(chuàng)建專屬方法 構(gòu)造函數(shù) 使自己的對象多次復(fù)制,同時實例根據(jù)設(shè)置的訪問等級可以訪問其內(nèi)部的屬性和方法 當對象被實例化后,構(gòu)造函數(shù)會立即執(zhí)行它所包含的任何代碼 一般我們創(chuàng)建一個對象,最直接的方法就是var o...

    mushang 評論0 收藏0
  • [零基礎(chǔ)學(xué)python]關(guān)于類的初步認識

    摘要:反對者在某些領(lǐng)域?qū)Υ擞枰苑裾J。下面再引用一段來自維基百科中關(guān)于的歷史。類的更嚴格的定義是由某種特定的元數(shù)據(jù)所組成的內(nèi)聚的包。類還可以有運行時表示形式元對象,它為操作與類相關(guān)的元數(shù)據(jù)提供了運行時支持。 在開始部分,請看官非常非常耐心地閱讀下面幾個枯燥的術(shù)語解釋,本來這不符合本教程的風格,但是,請看官諒解,因為列位將來一定要閱讀枯燥的東西的。這些枯燥的屬于解釋,均來自維基百科。 1、問題...

    王巖威 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<