成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

設(shè)計(jì)C++語(yǔ)言目標(biāo)和原則說(shuō)明

開(kāi)發(fā) 后端
有必要提一下,C語(yǔ)言在其最新的標(biāo)準(zhǔn)中還加入了一些新的特性,它們當(dāng)中的一些C++語(yǔ)言并沒(méi)有辦法直接“兼容”,甚至未來(lái)的C++語(yǔ)言也不一定會(huì)兼容它們。比如棧上分配的動(dòng)態(tài)數(shù)組。

C++語(yǔ)言的一個(gè)目標(biāo)就是提供更易用并具有一定承受能力的設(shè)計(jì)思想和程序設(shè)計(jì)技術(shù),進(jìn)一步提高程序的質(zhì)量。這些技術(shù)中的絕大部分都源自Simula ,并通常被作為面向?qū)ο蟪绦蛟O(shè)計(jì)和面向?qū)ο笤O(shè)計(jì)思想來(lái)討論。

論壇中,常有初學(xué)者問(wèn)“學(xué)習(xí)C++語(yǔ)言之前是否有必要先學(xué)C?”。我認(rèn)為這個(gè)問(wèn)題是個(gè)偽問(wèn)題。問(wèn)題本身的答案并非是提出問(wèn)題的人真正想要的?;卮疬@個(gè)問(wèn)題非常簡(jiǎn)單:“當(dāng)然不需要”。因?yàn)?FONT>C++是一門(mén)獨(dú)立的編程語(yǔ)言,它在語(yǔ)法、構(gòu)建環(huán)境和運(yùn)行環(huán)境上都不需要依賴(lài)于任何其它語(yǔ)言。至于說(shuō)它是“C語(yǔ)言的超集”。

那只是一種模糊的提法而已,更準(zhǔn)確的說(shuō)法應(yīng)該是:C++語(yǔ)言從設(shè)計(jì)之初就充分考慮了對(duì)C語(yǔ)言的兼容性,結(jié)果使它在相當(dāng)大的程度上兼容了C語(yǔ)言。如此而已。但對(duì)于那樣提問(wèn)的初學(xué)者來(lái)說(shuō),以上會(huì)是他們想要的答案嗎?我覺(jué)得不是。至少問(wèn)題沒(méi)有這么簡(jiǎn)單。

C++語(yǔ)言支持多種編程范式:面向過(guò)程、面向?qū)ο蠛头缎统绦蛟O(shè)計(jì)。它所兼容C的部分,也正是支持面向過(guò)程的主要部分。有C語(yǔ)言的基礎(chǔ),雖然有助于更快地掌握C++的面向過(guò)程部分,但由于C++語(yǔ)言本身也直接支持面向過(guò)程,因此我們完全可以從C++中直接學(xué)習(xí)面向過(guò)程程序設(shè)計(jì),而無(wú)需先學(xué)C。至少理論上如此。

但話又要說(shuō)回來(lái)。注意,提這個(gè)問(wèn)題的大多是初學(xué)者。一般講解C++語(yǔ)言的教程,限于篇幅,面向過(guò)程部分無(wú)法與一本優(yōu)秀的C語(yǔ)言教程相媲美。于是,真正的問(wèn)題來(lái)了:直接從C++語(yǔ)言開(kāi)始學(xué)習(xí)的初學(xué)者,他是否愿意像C語(yǔ)言初學(xué)者那樣花大量的時(shí)間和精力,專(zhuān)門(mén)鉆研面向過(guò)程程序設(shè)計(jì)?

如果他不愿,那么他對(duì)面向過(guò)程部分的掌握,就難以跟一個(gè)扎扎實(shí)實(shí)學(xué)習(xí)過(guò)C語(yǔ)言的人相比。即使只討論“C++中的C”,結(jié)論也是一樣。但是,這里我只是想強(qiáng)調(diào)這樣一個(gè)事實(shí),而并非要下個(gè)“必需先學(xué)C”的結(jié)論。

我個(gè)人在初學(xué)C++語(yǔ)言時(shí),覺(jué)得教程中學(xué)到的好多東西,包括面向?qū)ο蟪绦蛟O(shè)計(jì),在實(shí)踐中無(wú)法運(yùn)用自如。后來(lái)因工作需要,又去學(xué)習(xí)Java語(yǔ)言,一下子就對(duì)面向?qū)ο笥辛艘环N開(kāi)竅的感覺(jué)。再使用C++寫(xiě)程序時(shí),發(fā)現(xiàn)OO起來(lái)也更順暢了,我的好幾位朋友也有過(guò)類(lèi)似的感覺(jué)。究其原因,我想跟上面的分析的C語(yǔ)言的情況類(lèi)似。C++的所支持的特性和編程范式更多,初學(xué)者很難快速消化全部。而Java在1.4之前,可以認(rèn)為是純面向?qū)ο蟮摹?/P>

這樣,使用Java寫(xiě)程序時(shí),我們被迫實(shí)踐面向?qū)ο缶幊?,這就好比使用C寫(xiě)程序,我們被迫實(shí)踐面向過(guò)程一樣。而直接使用C++寫(xiě)程序,沒(méi)有什么“被迫”,我們也就缺少了相應(yīng)的“專(zhuān)項(xiàng)強(qiáng)化訓(xùn)練”。并非所有的人都需要這種“專(zhuān)項(xiàng)強(qiáng)化訓(xùn)練”,但對(duì)于初學(xué)者,面對(duì)著要掌握的復(fù)雜知識(shí)體系,它確實(shí)能起到“分而治之”的作用,從而促進(jìn)對(duì)知識(shí)的消化和吸收。

還有人認(rèn)為,學(xué)會(huì)了C++語(yǔ)言,自然就學(xué)會(huì)了C。而我認(rèn)為這種觀點(diǎn)是經(jīng)不起推敲。我們必需承認(rèn)兩點(diǎn):***,C語(yǔ)言是有用的,這點(diǎn)不用多說(shuō),那么多C語(yǔ)言構(gòu)筑起來(lái)的項(xiàng)目和復(fù)雜系統(tǒng)擺在那里。雖然它沒(méi)有對(duì)包括面向?qū)ο笤趦?nèi)的各種更抽象的編程范式提供直接支持,但事實(shí)早已證明它能解決復(fù)雜問(wèn)題;第二,C++語(yǔ)言的設(shè)計(jì)者所設(shè)計(jì)的是一門(mén)新式的語(yǔ)言,而不僅僅是一個(gè)“更好用的C”。這就導(dǎo)致C++在繼承C語(yǔ)言的同時(shí)也要對(duì)它的各種特性做必要的揚(yáng)棄。#t#

于是,就產(chǎn)生了很多這樣的情況:某種特性,在C語(yǔ)言中非常重要,但C++語(yǔ)言卻擁有一些新的特性來(lái)替代它,而且可能做得更好。這樣,原來(lái)C語(yǔ)言中的一些特性在C++語(yǔ)言中雖然還被兼容,卻被大大淡化,或不再提倡,甚至一些C++語(yǔ)言的教程中都不提那種特性。

這方面的例子很多,比如“宏”,C++中有太多可以在各種不同的場(chǎng)合取代宏的東西;再比如可變參數(shù),還有對(duì)指針的一些復(fù)雜使用等等。這些東西在C語(yǔ)言中則非常重要,重要到成為C語(yǔ)言之所以“有用”的直接原因之一。因?yàn)檫@些原因,一個(gè)用慣了C++語(yǔ)言,而從沒(méi)單獨(dú)學(xué)習(xí)過(guò)C語(yǔ)言的人,如果有一天突然被要求去負(fù)責(zé)一個(gè)C語(yǔ)言項(xiàng)目,我不認(rèn)為他就一定能輕松搞定。所以,我認(rèn)為“學(xué)會(huì)C++,自然也就學(xué)會(huì)了C”的觀點(diǎn)是沒(méi)有道理的。

有人說(shuō)過(guò),“C語(yǔ)言是結(jié)構(gòu)化的匯編”,沒(méi)錯(cuò),它的功能、效率和可移植性都很好地達(dá)到了它的設(shè)計(jì)初衷,它對(duì)現(xiàn)實(shí)項(xiàng)目中的各種問(wèn)題也都有它獨(dú)特的解決方式,而同樣的解決方式在C++語(yǔ)言中卻未必是恰當(dāng)?shù)模ó?dāng)然反之也成立)。換句話說(shuō),從解決實(shí)際問(wèn)題的方式來(lái)看,這兩種語(yǔ)言誰(shuí)也包含不了誰(shuí)。但我們學(xué)習(xí)程序設(shè)計(jì)不就是為了解決實(shí)際問(wèn)題嗎?那結(jié)論已經(jīng)出來(lái)了:C++語(yǔ)言從語(yǔ)法上幾乎完全包含了C不代表它“真正”包含了C。

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

2010-01-26 13:36:27

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

2011-05-31 17:59:48

C++

2011-04-11 09:23:27

設(shè)計(jì)目標(biāo)原則C++

2010-01-22 10:36:25

C++語(yǔ)言

2010-01-25 10:54:18

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

2010-01-21 16:45:02

C++設(shè)計(jì)目標(biāo)

2010-01-28 10:01:28

C++的設(shè)計(jì)原則

2010-01-08 16:10:59

C++語(yǔ)言

2010-01-25 17:29:10

C++語(yǔ)言

2010-01-15 19:34:25

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

2010-01-13 16:44:03

C++

2010-01-18 13:54:28

函數(shù)

2010-01-12 10:11:36

學(xué)習(xí)C++語(yǔ)言

2021-09-13 10:30:42

C++代碼設(shè)計(jì)模式

2010-01-27 14:24:15

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

2010-01-11 13:37:31

C++語(yǔ)言

2010-01-12 10:21:42

C++語(yǔ)言

2010-01-13 15:51:44

C++編程語(yǔ)言

2010-01-12 09:39:58

C++語(yǔ)言

2010-01-11 11:09:10

C++語(yǔ)法
點(diǎn)贊
收藏

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

主站蜘蛛池模板: 一区二区视频 | 成人一区二区三区在线观看 | 羞羞视频在线网站观看 | 日本久久福利 | 亚洲成人一区二区 | 精品免费av | 欧美成人a∨高清免费观看 欧美日韩中 | 亚洲每日更新 | 99在线观看 | 久久久久国产一区二区三区 | 日韩在线一区二区三区 | 狠狠操你 | 视频一区二区三区中文字幕 | 欧美日韩1区2区 | 亚洲第一成人影院 | 国产精品日韩高清伦字幕搜索 | 欧美网站一区二区 | 欧美一级大片免费看 | 一区二区三区在线 | 日韩亚洲视频 | 国产视频一区在线 | 一区二区三区精品视频 | 新91| 一级片在线视频 | 日韩精品| 国产99热| 精品国产一区二区三区成人影院 | 精品不卡 | 精品一区二区三区在线视频 | 久久久久久精 | 午夜精品久久久久久久久久久久久 | 视频在线观看一区二区 | 久久久国产网站 | 日韩午夜影院 | 国产精品区二区三区日本 | 亚洲视频欧美视频 | 国产第一区二区 | 美女在线观看av | 992tv人人草 久久精品超碰 | 亚洲在线一区二区 | 精品国产乱码久久久久久蜜柚 |