自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

大致說(shuō)明C++中struct思想指導(dǎo)

開發(fā) 后端
C++中struct是可以包含函數(shù)的,可以擁有構(gòu)造函數(shù),析構(gòu)函數(shù)同樣擁有繼承等能力。所以下面我說(shuō)一個(gè)我認(rèn)為的C++中struct思想。

很多人對(duì)于C++中struct與Class的區(qū)別不是很了解,認(rèn)為在C++中struct與Class可以說(shuō)是沒(méi)有區(qū)別,但是又可以說(shuō)是很大區(qū)別。希望對(duì)大家能有所幫助。

因?yàn)镃++要向下兼容C。所以C具有的東西,那么在C++里也具有。所以談struct應(yīng)該是從C談起。struct在C中:struct是一種自定義的數(shù)據(jù)類型。既然是一種數(shù)據(jù)類型那么就肯定不能定義函數(shù)。C是面向過(guò)程的,面向?qū)ο蟮臇|西它自然也不具有。struct在C++中;

C++是面向?qū)ο蟮?。根?jù)對(duì)象的思想,struct應(yīng)該是等價(jià)于CLass(C是沒(méi)有Class這個(gè)東西的)。這里我們又引出了一個(gè)很大的話題,面向過(guò)程和面向?qū)ο蟮膮^(qū)別。這里我們只選其中很小的一部分來(lái)說(shuō)。

面向過(guò)程認(rèn)為,數(shù)據(jù)和數(shù)據(jù)的操作是分開的。(當(dāng)然面向過(guò)程也可以刻意的實(shí)現(xiàn)把數(shù)據(jù)和數(shù)據(jù)的操作集合到一起) 面向?qū)ο笳J(rèn)為,數(shù)據(jù)和數(shù)據(jù)的操作是一個(gè)整體,不應(yīng)該分開的。 #t#

這樣面向?qū)ο缶秃兔嫦蜻^(guò)程有了很大的沖突。這個(gè)沖突其實(shí)引發(fā)了struct的C和C++的差異性。C++中struct是可以包含函數(shù)的,可以擁有構(gòu)造函數(shù),析構(gòu)函數(shù)同樣擁有繼承等能力。這個(gè)時(shí)候。。

很多人就會(huì)疑惑?那struct和CLASS不就一樣了嗎?對(duì)struct和class的確差別不大。從使用上差別不大。使用上的差別唯一的就是默認(rèn)訪問(wèn)類型不一樣struct默認(rèn)私有,class默認(rèn)公有??隙ň陀信笥褧?huì)問(wèn),平常我們都不會(huì)依賴于默認(rèn)啦,不同的編譯器可能默認(rèn)方式都不一樣的。照這個(gè)思維不就是完全沒(méi)區(qū)別了。對(duì)我說(shuō)的很大區(qū)別,其實(shí)針對(duì)的是思想上并非使用上。

***:struct是繼承于C但又要適合于面向?qū)ο?。所以struct是丟也不是,留下又多余的尷尬局面。

第二:C++中struct已經(jīng)被擴(kuò)展,已經(jīng)不再是C時(shí)代的struct

那么***的思想差別是啥呢?我也說(shuō)不清楚。思想的東西我覺得,是要靠感悟的,可能從我嘴來(lái)說(shuō)出來(lái)的思想,在你眼里可能是狗屁不通,甚至是一堆臭雞蛋。所以下面我說(shuō)一個(gè)我認(rèn)為的C++中struct思想。

在面向?qū)ο髾M行的時(shí)代。相信大家都對(duì)幾個(gè)面向?qū)ο笤~語(yǔ)有很深的認(rèn)識(shí),對(duì)象,類,接口,繼承等等。 但是大家留心會(huì)發(fā)現(xiàn),C++里面沒(méi)有“接口”這個(gè)東西。說(shuō)起接口這個(gè)東西,就不能不說(shuō)JAVA了,在JAVA里是不允許多繼承的。

但是能實(shí)現(xiàn)繼承多個(gè)接口。但是C++卻是允許實(shí)現(xiàn)多繼承,那么如果C++里出現(xiàn)接口這個(gè)東西,***的結(jié)果也會(huì)變成多余。但是接口這個(gè)思想在面向?qū)ο罄锟梢哉f(shuō)是得到了高度的發(fā)展。甚至形成了面向方面編程AOP(其實(shí)就是針對(duì)接口編程的一種深化)。

所以我覺得“接口”其實(shí)已經(jīng)在面向?qū)ο罄镄纬闪艘环N文化。但是作為編程界翹楚的C++卻沒(méi)有“接口”這樣?xùn)|西。人的思維是強(qiáng)大的,例如MS的做法就是將struct當(dāng)成了接口來(lái)使用。所以我覺得C++中的struct和class區(qū)別不是在于使用,不在于語(yǔ)法糖,而是在于思想,在于構(gòu)架約定等方面。

責(zé)任編輯:chenqingxiang 來(lái)源: 計(jì)世網(wǎng)
相關(guān)推薦

2010-01-12 10:21:42

C++語(yǔ)言

2010-01-13 09:38:17

C++單元測(cè)試

2010-01-26 10:42:26

C++函數(shù)

2010-01-11 14:13:03

C++學(xué)習(xí)方法

2010-01-19 13:43:59

C++函數(shù)

2010-01-28 11:08:09

C++變量

2010-01-28 13:27:12

C++類定義

2009-10-10 14:40:03

C++中struct

2010-01-05 15:55:33

JQuery源碼

2010-01-18 10:01:48

C++中訪問(wèn)控制

2010-01-14 17:42:47

CC++

2009-12-11 14:01:10

VS 6.0

2010-01-26 13:36:27

C++設(shè)計(jì)

2010-01-26 13:42:28

C++指針

2010-01-25 10:54:18

C++設(shè)計(jì)

2010-01-19 15:36:02

C++語(yǔ)言

2010-01-12 17:47:31

C++語(yǔ)言

2009-12-21 10:01:05

Oracle技術(shù)

2010-01-05 14:09:33

JSON數(shù)組

2010-01-19 17:54:47

C++程序
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)