學(xué)習(xí)啦 > 學(xué)習(xí)方法 > 通用學(xué)習(xí)方法 > 學(xué)習(xí)經(jīng)驗(yàn) > 怎么正確有效的學(xué)習(xí)計(jì)算機(jī)語言

怎么正確有效的學(xué)習(xí)計(jì)算機(jī)語言

時(shí)間: 欣怡1112 分享

怎么正確有效的學(xué)習(xí)計(jì)算機(jī)語言

  無論對于何種計(jì)算機(jī)編程語言,其核心編程思想都是一樣的,所以想要學(xué)好計(jì)算機(jī)語言需要找到正確的學(xué)習(xí)方法。那么怎么正確有效的學(xué)習(xí)計(jì)算機(jī)語言?以下是學(xué)習(xí)啦小編分享給大家的學(xué)習(xí)計(jì)算機(jī)語言的方法,希望可以幫到你!

  學(xué)習(xí)計(jì)算機(jī)語言的方法

  學(xué)練相結(jié)合

  在學(xué)習(xí)新知識的同時(shí),充分利用身邊的電腦,做到邊學(xué)新知識邊上機(jī)操作練習(xí),這樣對于加強(qiáng)知識的穩(wěn)固具有十分重要的作用。

  深入學(xué)習(xí)細(xì)節(jié)過程中,對于電腦編程的學(xué)習(xí),即要從整體把握,又要深入細(xì)節(jié)當(dāng)中,了解并掌握知識的核心理念。

  努力學(xué)好一門計(jì)算機(jī)編程語言。根據(jù)電腦編程語言的相通性,當(dāng)充分掌握一門計(jì)算機(jī)編輯語言后,對于其它語言的掌握時(shí)間將明顯減少。

  最好先從低層(級)語言學(xué)起,這樣就可以有效的掌握計(jì)算機(jī)的硬件低層知識,從而為更高級語言的學(xué)習(xí)打下良好的基礎(chǔ)。

  嘗試自己編寫若干個(gè)功能模塊,從而加強(qiáng)對計(jì)算機(jī)編程語言基礎(chǔ)能力的加強(qiáng)以及應(yīng)用,并為新知識的學(xué)習(xí)奠定基礎(chǔ)。

  向別人學(xué)習(xí),多看看別人寫的代碼,了解應(yīng)用計(jì)算機(jī)編程解決問題的通用方法,從中提煉解決問題的通用方法。

  學(xué)好C語言的建議

  要讀就讀好書,否則不如不讀

  所有初學(xué)者面臨的第一個(gè)問題便是:如何選擇教材。好的開始是成功的一半,選擇一本優(yōu)秀的教材是事半功倍的關(guān)鍵因素。不幸的是,學(xué)校通常會(huì)幫你指定一本很差勁的C語言課本;而幸運(yùn)的是,你還可以再次選擇。

  有興趣大家可以百度一下:)Kernighan和Ritchie的《The C Programming Language》(中譯名《C程序設(shè)計(jì)語言》)堪稱經(jīng)典中的經(jīng)典,不過舊版的很多內(nèi)容都已過時(shí),和現(xiàn)在的標(biāo)準(zhǔn)C語言相去甚遠(yuǎn),大家一定要看最新的版本,否則不如不看。另外,即使是最經(jīng)典最權(quán)威的書,也沒有辦法面面俱到,所以手邊常備一本《C語言參考手冊》是十分必要的?!禖語言參考手冊》就是《C Reference Manual》,是C語言標(biāo)準(zhǔn)的詳細(xì)描述,包括絕大多數(shù)C標(biāo)準(zhǔn)庫函數(shù)的細(xì)節(jié),算得上是最好的標(biāo)準(zhǔn)C語言的工具書。

  順便提一句,最新的《C程序設(shè)計(jì)語言》是根據(jù)C89標(biāo)準(zhǔn)修訂的,而《C語言參考手冊》描述的是C99標(biāo)準(zhǔn),二者可能會(huì)有些出入,建議按照C99標(biāo)準(zhǔn)學(xué)習(xí)。還有一本《C和指針》,寫得也是相當(dāng)?shù)夭诲e(cuò),英文名是《Pointerson C》,特別地強(qiáng)調(diào)指針的重要性,算是本書的一個(gè)特點(diǎn)吧。不過這本書并不十分適合初學(xué)者,如果你曾經(jīng)學(xué)過C語言,有那么一些C語言的基礎(chǔ)但又不是很扎實(shí),那么你可以嘗試一下這本書。我相信,只要你理解了指針,C語言便不再神秘。

  如果你已經(jīng)啃完了一本C語言教材,想要更進(jìn)一步,那么有兩本書你一定要看。首先是《C Traps and Pitfalls》(中譯名《C陷井與缺陷》),很薄的一本小冊子,內(nèi)容非常非常地有趣。要注意一點(diǎn),這本書是二十多年前寫成的,里面提到的很多C語言的缺陷都已被改進(jìn),不過能夠了解一些歷史也不是什么壞事。然后你可以挑戰(zhàn)一下《Expert C Programming》(中譯名《C專家編程》),書如其名,這本書頗具難度,一旦你仔細(xì)讀完并能透徹理解,你便可以放心大膽地在簡歷上寫“精通C語言”了。

  切記一個(gè)原則,不要讀自己目前還看不懂的書,那是浪費(fèi)生命。如果你看不懂,那你一定是缺失了某些必需基礎(chǔ)知識。此時(shí),你要仔細(xì)分析自己需要補(bǔ)充哪些內(nèi)容,然后再去書店尋找講述的這些內(nèi)容的書籍。把基礎(chǔ)知識補(bǔ)充完畢再回頭來學(xué)習(xí),才會(huì)真正的事半功倍。

  Unix/Linux還是Windows,這是個(gè)很大的問題

  不同的編程環(huán)境會(huì)造就出不同思維的程序員。Windows的程序員大多依賴集成開發(fā)環(huán)境,比如Visual Studio,而Unix程序員更加鐘愛Makefile與控制臺(tái)。顯而易見,集成開發(fā)環(huán)境更容易上手,在Windows上學(xué)習(xí)C語言,只需要會(huì)按幾個(gè)基本的Visutal C++工具欄按鈕就可以開始寫Hello, World!了,而在Unix下,你需要一些控制臺(tái)操作的基本知識。有人也許認(rèn)為Unix的環(huán)境更簡潔,但習(xí)慣的力量是很大的,大家都很熟悉Windows的基本操作,而為了學(xué)習(xí)C語言去專門裝一個(gè)Unix系統(tǒng),似乎有點(diǎn)不劃算。

  對于一個(gè)只懂得Windows基本操作、連DOS是什么都不知道的新手而言,盡快做一些有趣而有意義的事情才是最重要的。用C語言寫一個(gè)小程序遠(yuǎn)比學(xué)習(xí)ls、cat等命令有趣,況且我們要專注于C語言本身,就不得不暫時(shí)忽略一些東西,比如編譯鏈接的過程、Makefile的寫法等等等等。

  所以我建議初學(xué)者應(yīng)該以Visual C++ 6.0(不是VisualC++ .NET)或者Dev C++作為主要的學(xué)習(xí)環(huán)境,而且千萬不要在IDE的使用技巧上過多糾纏,因?yàn)榻窈竽阋欢ㄒD(zhuǎn)向Unix環(huán)境的。Visual C++ 6.0使用很方便,調(diào)試也很直觀,但其默認(rèn)的編譯器對C標(biāo)準(zhǔn)的支持并不好,而Dev C++使用gcc編譯器,對C99的標(biāo)準(zhǔn)都支持良好。使用順帶提一下,很多大學(xué)的C語言課程還在使用Turbo C 2.0作為實(shí)驗(yàn)環(huán)境,這是相當(dāng)不可取的,原因其一是TC 2.0對C標(biāo)準(zhǔn)幾乎沒有支持,其二是TC 2.0編譯得到的程序是16位的,這對今后理解32位的程序會(huì)造成極大的困擾(當(dāng)然,用djgpp之類的東西可以使TC 2.0編譯出32位程序,不過那過于復(fù)雜了)。

  等你學(xué)完一本C語言的教材,你一定要轉(zhuǎn)向Unix平臺(tái)繼續(xù)學(xué)習(xí),幾乎所有的C語言高級教程都是基于Unix平臺(tái)的(比如《C專家編程》)。轉(zhuǎn)變的過程是痛苦的,你需要面對的是各種紛繁復(fù)雜的命令,完全不同于Windows平臺(tái)的思考方式,但是這種痛苦是值得的。Unix與C是共生的,Unix的思考方式和習(xí)慣更加符合C語言的思考方式和習(xí)慣。在Unix下,你可以找到無數(shù)優(yōu)秀的源代碼供你盡情閱讀,你可以方便地查看某個(gè)庫函數(shù)的聯(lián)機(jī)手冊,還可以看到最優(yōu)秀的代碼風(fēng)格(說到代碼風(fēng)格,我會(huì)專門寫一篇文章詳細(xì)敘述)。歸結(jié)起來就是一句話:初學(xué)C語言,建議使用Windows系統(tǒng)和集成開發(fā)環(huán)境,在準(zhǔn)備向“高手”方向努力時(shí),請先轉(zhuǎn)向Unix平臺(tái)。

  萬事俱備,你就是東風(fēng)

  書已選定,環(huán)境配置完成,正所謂萬事俱備,只欠你自己的努力了。請從書的前言開始,仔細(xì)地閱讀手頭的教材,很多人看書喜歡直接從第一章開始看,這是錯(cuò)誤的做法。前言是作者對整本書的大體介紹,作者一般會(huì)告訴你需要什么基礎(chǔ)才能夠順利閱讀本書,這可以幫助你檢驗(yàn)自己的基礎(chǔ)知識是否已經(jīng)具備??赐昵把?,還要瀏覽一下目錄,了解一下書的整體結(jié)構(gòu),順便給自己安排一下學(xué)習(xí)計(jì)劃。學(xué)習(xí)C語言,必需注意每一個(gè)細(xì)節(jié),書上的例子代碼一定要自己親自敲一遍,編譯執(zhí)行輸出都跟書上說的一致才能算是學(xué)完了一個(gè)例子,如果不一致,就要仔細(xì)找原因。出了書本上有的例子,自己還要“創(chuàng)造”一些例子,比如學(xué)習(xí)運(yùn)算符優(yōu)先級的時(shí)候,可以寫幾個(gè)相同的表達(dá)式,在不同的位置加上括號,看看有哪些不同的行為,比如*p++和(*p)++,又比如a = b == c、(a = b) == c和a = (b == c)等等。自己抄的書上的例子以及改造之后的例子,還有自己“創(chuàng)造”的例子,都應(yīng)該仔細(xì)地歸類保存,并且要在源代碼中寫上簡短的注釋,闡述這個(gè)例子的意圖。

  例子之后就是習(xí)題了,我建議初學(xué)者把所有的習(xí)題都獨(dú)立做一遍,然后對照答案的代碼,看看自己的代碼有那些不足,再試著修改自己的代碼。很多人不重視習(xí)題,這是極大的錯(cuò)誤,因?yàn)樽髡咄ǔ?huì)在習(xí)題中說明一些重要的道理,而不是單純地檢驗(yàn)前面的知識。也許你認(rèn)為這樣學(xué)習(xí)太慢,其實(shí)不然。學(xué)得細(xì)致就不用走回頭路,等你學(xué)到后面才發(fā)現(xiàn)自己前面沒搞清楚,那才是真的得不償失。一般說來,整本書讀完,你應(yīng)該完成數(shù)千行乃至上萬行的代碼,無論是原封不動(dòng)照抄書上的,還是自己心血來潮寫就的,都是今后繼續(xù)學(xué)習(xí)的一筆財(cái)富。以我自己舉例,閱讀《Windows核心編程》時(shí)(我只閱讀了3/4的內(nèi)容),除了抄書上的代碼,還自己寫了很多例子,一共有5574行(用unix下的wc工具統(tǒng)計(jì)),時(shí)隔多日,我早已記不清Windows的系統(tǒng)編程了,但只要花幾分鐘翻出以前的代碼看看,便會(huì)重新了然于胸。所謂好記性不如爛筆頭,就是這個(gè)道理。

  仔細(xì)讀書、認(rèn)真抄寫源代碼、獨(dú)立完成習(xí)題外加更進(jìn)一步的實(shí)驗(yàn),最后將所有的代碼留下,成為自己的經(jīng)驗(yàn)和財(cái)富,絕對的辛苦,也絕對的事半功倍。當(dāng)然,這種方式只適合學(xué)習(xí)需要精通的技術(shù),如果不是學(xué)習(xí)C語言,你還要具體情況具體分析。還有非常非常重要的一點(diǎn)沒有提及──代碼風(fēng)格。從最開始學(xué)習(xí)就必須強(qiáng)迫自己模仿最優(yōu)秀的代碼風(fēng)格。因?yàn)榇a風(fēng)格太重要內(nèi)容也太多,我會(huì)用專門的一篇文章來詳細(xì)討論,請大家關(guān)注《程序員之路──關(guān)于代碼風(fēng)格》。

  題目是關(guān)于C語言,其實(shí)我主要想說說程序該怎么學(xué),或者一點(diǎn)感悟罷了,在這里,我只想引用身邊的幾個(gè)人的例子,來談一下對程序?qū)W習(xí)的理解,我對程序產(chǎn)生興趣,是聽說程序可以作游戲,那時(shí)候是在初一,然而借來一本G-BASIC簡明教材后,我便傻了眼,陌生的詞匯,古怪的邏輯,都是些天文的中文譯本,頭疼了好一陣子。然而當(dāng)時(shí)又沒有別的閑書可看,我就整天捧著那一本書,什么方法都試過了,甚至倒著看過了,都沒看出什么眉目,自己又沒有電腦,只能不停地大膽地想象,然后滿腦子的疑惑……

  在這里停一下,上面說的便是我學(xué)習(xí)的風(fēng)格:總要經(jīng)歷一番波折,瞎折騰幾下,然后才會(huì)有偶然間的明悟-開竅了!我甚至沒見過幾個(gè)人有我這么笨,現(xiàn)在明白過來了,我總是一開始把事情想得過于復(fù)雜,造成狗咬刺猬的難堪的局面,然而竟然有意想不到的收獲!但是不建議大家模仿這種風(fēng)格,起碼追女朋友的時(shí)候不能這樣,生活中很多機(jī)會(huì)在于接手的那一瞬間,失去就永遠(yuǎn)找不回來了。

  現(xiàn)在回來,后來偶然間,我看懂了一行代碼,是print 語句,當(dāng)時(shí)興奮得要命,又仔細(xì)看了這個(gè)看了那個(gè),一下子看懂了很多東西,像是在霎那間被什么給擊中似的,立刻間醍醐灌頂。。。。

  初三在學(xué)校學(xué)了FOXBASE,基本上自學(xué)的,我發(fā)現(xiàn)了一件奇怪的事,我這人是出了名的記性不好,然而當(dāng)時(shí)背程序中的命令卻是過目不忘,到現(xiàn)在還記得很多,也許是感興趣吧,也感謝我的微機(jī)老師給我提供自由上機(jī)的機(jī)會(huì)!后來我又自學(xué)了QBASIC,初四暑假又學(xué)了一點(diǎn)C,那時(shí)學(xué)C遇到不少困難,當(dāng)時(shí)我們學(xué)校機(jī)房連C語言都沒有,我只好悶在家里,一本二級C教材,一本配套習(xí)題,整天發(fā)呆地想,把自己的腦袋當(dāng)電腦cpu使,有時(shí)進(jìn)入死循環(huán),有時(shí)又徹底崩潰。我花十幾天看完了一本書,做完了一本題,然而腦袋里充滿了疑惑,由于沒有上機(jī)實(shí)踐的機(jī)會(huì),我就憑自己的猜測與推理己慢慢建立了一大堆理論,十分得意與自信,但后來證明大部分是錯(cuò)的,害我花了很長時(shí)間去糾正,這是后話??墒?,還是那句話不破不立,不阻不行。就像我現(xiàn)在有了電腦,整天泡在互聯(lián)網(wǎng)的海洋里,感受著快餐文化,好久都沒靜下心來好好想點(diǎn)東西了.

  高中還上過幾節(jié)電腦課,只不過忙于應(yīng)付高考,我將學(xué)程序的打算放棄了,到這里我該說下一個(gè)人了。高中時(shí)坐我旁邊一女生,她的文曲星里有BASIC,我偶爾拿過來編了幾個(gè)小程序玩,她看到后很感興趣,令人驚訝的是,她只看了三五個(gè)程序,聽我講了幾個(gè)命令的功能,就能根據(jù)自己的想象編出小動(dòng)畫來,她此前是絕沒有學(xué)過程序的!我曾一度懷疑過她的智商,然而她程序是如此之快,卻讓我的眼都瞪大了好幾圈,比我當(dāng)年高了好幾個(gè)境界!我后來經(jīng)常在想,是不是我當(dāng)時(shí)的方法不對,程序到底應(yīng)該怎樣學(xué)。。。

  一晃就到了大學(xué),我碰到另一個(gè)讓我佩服的人,跟我一樣是學(xué)計(jì)算機(jī)的,他是偶爾看到我在編動(dòng)畫,然后十分感興趣,便開始自學(xué)。他令人吃驚的是,指針,結(jié)構(gòu)體,位運(yùn)算等等,都沒搞懂(更不用說算法和數(shù)據(jù)結(jié)構(gòu)),只學(xué)了三種程序結(jié)構(gòu),現(xiàn)在只學(xué)了C半年,便自己能編出貪吃蛇,俄羅斯方塊,掃雷,還有很多叫不出名字的小游戲來,現(xiàn)在又在寫黑白棋,我知道我確實(shí)是走了不少彎路。

  計(jì)算機(jī)編程語言C++ 語言淺析

  C++是C語言的繼承,它既可以進(jìn)行C語言的過程化程序設(shè)計(jì),又可以進(jìn)行以抽象數(shù)據(jù)類型為特點(diǎn)的基于對象的程序設(shè)計(jì),還可以進(jìn)行以繼承和多態(tài)為特點(diǎn)的面向?qū)ο蟮某绦蛟O(shè)計(jì)。C++擅長面向?qū)ο蟪绦蛟O(shè)計(jì)的同時(shí),還可以進(jìn)行基于過程的程序設(shè)計(jì),因而C++就適應(yīng)的問題規(guī)模而論,大小由之。

  C++不僅擁有計(jì)算機(jī)高效運(yùn)行的實(shí)用性特征,同時(shí)還致力于提高大規(guī)模程序的編程質(zhì)量與程序設(shè)計(jì)語言的問題描述能力。

  一、發(fā)展歷程

  世界上第一種計(jì)算機(jī)高級語言是誕生于1954年的FORTRAN語言。之后出現(xiàn)了多種計(jì)算機(jī)高級語言。1970年,AT&T的Bell實(shí)驗(yàn)室的D.Ritchie和K.Thompson共同發(fā)明了C語言。研制C語言的初衷是用它編寫UNIX系統(tǒng)程序,因此,它實(shí)際上是UNIX的“副產(chǎn)品”。它充分結(jié)合了匯編語言和高級語言的優(yōu)點(diǎn),高效而靈活,又容易移植。

  1971年,瑞士聯(lián)邦技術(shù)學(xué)院N.Wirth教授發(fā)明了Pascal語言。Pascal語言語法嚴(yán)謹(jǐn),層次分明,程序易寫,具有很強(qiáng)的可讀性,是第一個(gè)結(jié)構(gòu)化的編程語言。

  20世紀(jì)70年代中期,Bjarne Stroustrup在劍橋大學(xué)計(jì)算機(jī)中心工作。他使用過Simula和ALGOL,接觸過C。他對Simula的類體系感受頗深,對ALGOL的結(jié)構(gòu)也很有研究,深知運(yùn)行效率的意義。既要編程簡單、正確可靠,又要運(yùn)行高效、可移植,是Bjarne Stroustrup的初衷。以C為背景,以Simula思想為基礎(chǔ),正好符合他的設(shè)想。1979年,Bjame Sgoustrup到了Bell實(shí)驗(yàn)室,開始從事將C改良為帶類的C(C with classes)的工作。1983年該語言被正式命名為C++。自從C++被發(fā)明以來,它經(jīng)歷了3次主要的修訂,每一次修訂都為C++增加了新的特征并作了一些修改。第一次修訂是在1985年,第二次修訂是在1990年,而第三次修訂發(fā)生在c++的標(biāo)準(zhǔn)化過程中。在20世紀(jì)90年代早期,人們開始為C++建立一個(gè)標(biāo)準(zhǔn),并成立了一個(gè)ANSI和ISO(Intemational Standards Organization)國際標(biāo)準(zhǔn)化組織的聯(lián)合標(biāo)準(zhǔn)化委員會(huì)。該委員會(huì)在1994年1月25曰提出了第一個(gè)標(biāo)準(zhǔn)化草案。在這個(gè)草案中,委員會(huì)在保持Stroustrup最初定義的所有特征的同時(shí),還增加了一些新的特征。

  在完成C++標(biāo)準(zhǔn)化的第一個(gè)草案后不久,發(fā)生了一件事情使得C++標(biāo)準(zhǔn)被極大地?cái)U(kuò)展了:Alexander stepanov創(chuàng)建了標(biāo)準(zhǔn)模板庫(Standard Template Library,STL)。STL不僅功能強(qiáng)大,同時(shí)非常優(yōu)雅,然而,它也是非常龐大的。在通過了第一個(gè)草案之后,委員會(huì)投票并通過了將STL包含到C++標(biāo)準(zhǔn)中的提議。STL對C++的擴(kuò)展超出了C++的最初定義范圍。雖然在標(biāo)準(zhǔn)中增加STL是個(gè)很重要的決定,但也因此延緩了C++標(biāo)準(zhǔn)化的進(jìn)程。

  委員會(huì)于1997年11月14日通過了該標(biāo)準(zhǔn)的最終草案,1998年,C++的ANSI/IS0標(biāo)準(zhǔn)被投入使用。通常,這個(gè)版本的C++被認(rèn)為是標(biāo)準(zhǔn)C++。所有的主流C++編譯器都支持這個(gè)版本的C++,包括微軟的Visual C++和Borland公司的C++Builder。

  二、編程開發(fā)

  集成開發(fā)環(huán)境(IDE)

  Visual Studio (Visual C++)

  C++ Builder

  kDevelop

  Anjuta

  Code::Blocks:開放源碼的全功能的跨平臺(tái)C/C++集成開發(fā)環(huán)境。

  Visual Mingw

  Ideone

  Eclipse CDT

  Compilr

  Code Lite

  Netbeans C++

  集成開發(fā)環(huán)境(IDE),功能齊全,調(diào)試功能很強(qiáng),程序編好后,可以立刻在環(huán)境中調(diào)試以獲得初步測試結(jié)果,然后,可以方便地做成beta版形式,拿到實(shí)際環(huán)境中進(jìn)一步測試,最后做成軟件發(fā)行版。

  編譯器

  Dev C++

  Ultimate++

  Digital Mars

  C-Free

  MinGW

  Tiny C Compiler

  三、語言特點(diǎn)

  支持?jǐn)?shù)據(jù)封裝和數(shù)據(jù)隱藏

  在C++中,類是支持?jǐn)?shù)據(jù)封裝的工具,對象則是數(shù)據(jù)封裝的實(shí)現(xiàn)。C++通過建立用戶定義類支持?jǐn)?shù)據(jù)封裝和數(shù)據(jù)隱藏。

  在面向?qū)ο蟮某绦蛟O(shè)計(jì)中,將數(shù)據(jù)和對該數(shù)據(jù)進(jìn)行合法操作的函數(shù)封裝在一起作為一個(gè)類的定義。對象被說明為具有一個(gè)給定類的變量。每個(gè)給定類的對象包含這個(gè)類所規(guī)定的若干私有成員、公有成員及保護(hù)成員。完好定義的類一旦建立,就可看成完全封裝的實(shí)體,可以作為一個(gè)整體單元使用。類的實(shí)際內(nèi)部工作隱藏起來,使用完好定義的類的用戶不需要知道類是如何工作的,只要知道如何使用它即可。

  支持繼承和重用

  在C++現(xiàn)有類的基礎(chǔ)上可以聲明新類型,這就是繼承和重用的思想。通過繼承和重用可以更有效地組織程序結(jié)構(gòu),明確類間關(guān)系,并且充分利用已有的類來完成更復(fù)雜、深入的開發(fā)。新定義的類為子類,成為派生類。它可以從父類那里繼承所有非私有的屬性和方法,作為自己的成員。

  支持多態(tài)性

  采用多態(tài)性為每個(gè)類指定表現(xiàn)行為。多態(tài)性形成由父類和它們的子類組成的一個(gè)樹型結(jié)構(gòu)。在這個(gè)樹中的每個(gè)子類可以接收一個(gè)或多個(gè)具有相同名字的消息。當(dāng)一個(gè)消息被這個(gè)樹中一個(gè)類的一個(gè)對象接收時(shí),這個(gè)對象動(dòng)態(tài)地決定給予子類對象的消息的某種用法。多態(tài)性的這一特性允許使用高級抽象。

  繼承性和多態(tài)性的組合,可以輕易地生成一系列雖然類似但獨(dú)一無二的對象。由于繼承性,這些對象共享許多相似的特征。由于多態(tài)性,一個(gè)對象可有獨(dú)特的表現(xiàn)方式,而另一個(gè)對象有另一種表現(xiàn)方式。

  四、工作原理

  C++語言的程序因?yàn)橐w現(xiàn)高性能,所以都是編譯型的。但其開發(fā)環(huán)境,為了方便測試,將調(diào)試環(huán)境做成解釋型的。即開發(fā)過程中,以解釋型的逐條語句執(zhí)行方式來進(jìn)行調(diào)試,以編譯型的脫離開發(fā)環(huán)境而啟動(dòng)運(yùn)行的方式來生成程序最終的執(zhí)行代碼。

  生成程序是指將源碼(C++語句)轉(zhuǎn)換成一個(gè)可以運(yùn)行的應(yīng)用程序的過程。如果程序的編寫是正確的,那么通常只需按一個(gè)功能鍵,即可搞定這個(gè)過程。該過程實(shí)際上分成兩個(gè)步驟。

  第一步是對程序進(jìn)行編譯,這需要用到編譯器(compiler)。編譯器將C++語句轉(zhuǎn)換成機(jī)器碼(也稱為目標(biāo)碼);如果這個(gè)步驟成功,下一步就是對程序進(jìn)行鏈接,這需要用到鏈接器(linker)。鏈接器將編譯獲得機(jī)器碼與C++庫中的代碼進(jìn)行合并。C++庫包含了執(zhí)行某些常見任務(wù)的函數(shù)(“函數(shù)”是子程序的另一種稱呼)。例如,一個(gè)C++庫中包含標(biāo)準(zhǔn)的平方根函數(shù)sqrt,所以不必親自計(jì)算平方根。C++庫中還包含一些子程序,它們把數(shù)據(jù)發(fā)送到顯示器,并知道如何讀寫硬盤上的數(shù)據(jù)文件。

猜你喜歡:

1.怎么學(xué)好一門計(jì)算機(jī)語言

2.學(xué)習(xí)電腦知識

3.計(jì)算機(jī)c語言基礎(chǔ)知識

4.c語言程序設(shè)計(jì)心得6篇

5.如何學(xué)習(xí)計(jì)算機(jī)語言才有效

3806894