類 物件 結構體

2021-06-12 05:30:56 字數 2480 閱讀 4800

類:是對某一類物件的抽象

物件:是某一種類的例項

類是抽象的,不占用記憶體,而物件是具體的,占用儲存空間。

類的定義一般分為宣告部分和實現部分,當類的成員函式的函式體在類的外部定義時,必須由作用域運算子「::」來通知編譯系統該函式所屬的類。

類中的資料成員的型別可以是任意的,但不允許對所定義的資料成員進行初始化。

類型別的宣告形式

class 類名 

stud1,

stud2;//

定義了兩個

student

類的物件

3.不出現類名,直接定義物件   

class //無類名   

private : //宣告以下部分為私有的   

public : //宣告以下部分為公用的   

}stud1,

stud2;//

定義了兩個無類名的類物件 

直接定義物件,在c++

中是合法的、允許的,但卻很少用,也不提倡用。在實際的程式開發中,一般都採用上面

3種方法中的第

1種方法。

物件成員的訪問:

乙個類物件時能訪問該類的公有型成員,不能訪問私有型成員。

若物件是乙個指標,則物件的成員訪問形式為:

《物件指標名

>

—><

成員變數

>

《物件指標名

>

—>《成員函式

>

(<.

參數列》)

「—>

」與「.

」的區別:

「—>

」是乙個表示成員的運算子,「—

>

」用於表示指向物件的指標的成員,而「

.」用於表示一般物件的成員,

《物件指標名

>

—><

成員變數

>

與(*<

物件指標名

>

).<

成員變數

>等價

類和結構體型別的異同

1:   類可以繼承

,結構不可以

.   

2:   類是引用型別

,結構是值型別   

3:   類在堆中

,結構在棧分配記憶體 

聯絡:   

class和

structure

很相似,

從技術層面講

,class

是引用,

而structure

則是數值

.有人很形象的說

, class

裡有行動,方法

,成員,是有機體的結合,而

structure

則是活生生的有機體。

區別:

1.值型別與引用型別

結構:是值型別,值型別在

堆疊上分配位址,所有的基型別都是結構型別,例如:int

對應system.int32

結構,string

對應system.string

結構,通過使用結構可以建立更多的值型別。 

類:是引用型別,引用型別在

堆上分配位址   

堆疊的執行效率要比堆的執行效率高

,可是堆疊的資源有限,不適合處理大的邏輯複雜的物件。所以結構處理作為基型別對待的小物件,而類處理某個商業邏輯   因為結構是值型別所以結構之間的賦值可以建立新的結構,而類是引用型別,類之間的賦值只是複製引用。  

注:雖然結構與類的型別不一樣,可是他們的基型別都是物件(object

),c#

中所有型別的基型別都是

object        

雖然結構的初始化也使用了new

操作符,可是結構物件依然分配在堆疊上而不是堆上,如果不使用「新建」

(new)

,那麼在初始化所有字段之前,欄位將保持未賦值狀態,且物件不可用

2.繼承性   

結構:不能

從另外乙個結構或者類

繼承,本身也不能被繼承,雖然結構沒有明確的用sealed

宣告,可是結構是隱式的

sealed   .     

類:完全可擴充套件的,除非顯示的宣告sealed

否則類可以繼承其他類和介面,自身也能被繼承   

注:雖然結構不能被繼承   可是結構能夠繼承介面,方法和類繼承介面一樣   

3.內部結構:     

結構:沒有預設的建構函式,但是可以新增建構函式,沒有析構函式,沒有   abstract

和sealed(

因為不能繼承

),不能有

protected

修飾符,可以不使用

new   

初始化,在結構中初始化例項欄位是錯誤的      

類:有預設的建構函式,有析構函式,可以使用abstract

和sealed

,有protected  

修飾符,必須使用

new初始化。   

C 類和物件,結構體

趁著中秋放假要多補補知識了,感覺自己對c 了解的不夠紮實,為了更好的工作,只好再來看看。c和c 規定可以用乙個結構體,裡面即可有陣列,也可以有其他變數。c中成員只能是資料,c 除了資料,還可以是函式。但是,c 提供了類這個東西,所以不需要包含函式的結構體。1,結構體 include using na...

C 類與物件探秘 結構體實現類

在c 中,class和struct幾乎沒有區別,非要說有區別,就是預設訪問許可權的區別,class預設私有,struct預設公有,這回主要通過c語言的結構體來了解一下c 類和物件的一些原理。結構體中,可以放變數,還有函式宣告,這裡設定不將函式宣告寫在結構體中。演示類1 struct animal v...

類與結構體

1.c與c 中結構體的不同 1 c中的結構體不能申明函式,只能申明變數 c 中的結構體和類差不多,能申明資料成員,也能申明函式成員 2 c中的結構體不能進行封裝,而c 中由於是 類 可以進行封裝。2.c 中類與結構體的區別 首先說明c 中類與結構體在一定意義上是等價的 區別 1 在預設狀態下,結構體...