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

幾分鐘教您玩轉(zhuǎn)C++程序

開發(fā) 后端
C++程序?qū)瘮?shù)的處理方式是不同的。extern "C"是使C++能夠調(diào)用C寫作的庫文件的一個(gè)手段,如果要對(duì)編譯器提示使用C的方式來處理函數(shù)的話,那么就要使用extern "C"來說明。

許多編程人員學(xué)習(xí)C++程序總結(jié)經(jīng)驗(yàn)為,有的覺得C++語言是一門獨(dú)立的語言,并不是在C語言的基礎(chǔ)上,可以直接學(xué)習(xí)C++不必先從C下手,希望通過本文的介紹能給大家?guī)碛杏玫闹R(shí)。

C++是個(gè)強(qiáng)大的語言,可以用于做別的語言做不了的工作。但是,這種強(qiáng)大功能是有代價(jià)的。開始使用C++時(shí),你可能會(huì)遇到內(nèi)存溢出和訪問失效等問題,使程序死機(jī)。這里用最簡(jiǎn)短的篇幅介紹C++語言基礎(chǔ)。C++語言本身有專著介紹,這種書還特別厚,所以別指望我能用三言兩語說清楚。讀者學(xué)完本書并使用C++ Builder一般時(shí)間之后,***對(duì)C++語言再作更深入的了解。

C++可以最充分地利用面向?qū)ο缶幊?OOP)的優(yōu)勢(shì)。OOP不只是一個(gè)新名詞,而有它的實(shí)際意義,可以生成可復(fù)用的對(duì)象。新術(shù)語 對(duì)象(object),和前面介紹的構(gòu)件一樣,是完成特定編程任務(wù)的軟件塊(構(gòu)件是對(duì)象,但對(duì)象不全是構(gòu)件,稍后會(huì)解釋這點(diǎn))。

對(duì)象只向用戶(使用對(duì)象的編程人員)顯示必須的部分,從而簡(jiǎn)化對(duì)象的使用。用戶不必知道的所有內(nèi)部機(jī)制都隱藏在幕后。這一切都包括在面向?qū)ο缶幊痰母拍钪小OP可以用模塊化方法進(jìn)行編程,從而避免每次從頭開始。

C++ Builder程序是面向OOP的,因?yàn)?FONT>C++ Builder大量使用構(gòu)件。生成構(gòu)件后(你生成的或C++ Builder內(nèi)置的構(gòu)件),就可以在任何C++ Builder程序中重復(fù)使用。構(gòu)件還可以擴(kuò)展,通過繼承生成具有新功能的新構(gòu)件。最妙的是,構(gòu)件隱藏了所有內(nèi)容細(xì)節(jié),使編程人員能集中精力充分利用構(gòu)件。

入門簡(jiǎn)介

C++之前先有C語言,C++是建立在C語言之上的,稱為“帶類的C語言”。這個(gè)C語言基礎(chǔ)在當(dāng)今的C++程序中仍然很重要。C++并不是取代C,而是補(bǔ)充和支持C。本章余下部分和下幾章主要介紹C++中來源于C語言的部分。

實(shí)際上,這里介紹的是C語言,第2課"C++基礎(chǔ)"中才轉(zhuǎn)入C++。讀者不必關(guān)心哪個(gè)來自C,哪個(gè)來自C++,因?yàn)檫@些全在C++中。C++語言很難按順序介紹,因?yàn)槲覀円榻B的所有特性都是交叉的。我準(zhǔn)備的一次介紹一塊,然后拼湊起來。到第3課"高級(jí)C++"結(jié)束,你將對(duì)C++語言有個(gè)完整的了解。一下子沒有掌握某個(gè)概念也沒關(guān)系,有些概念必須經(jīng)過實(shí)踐才能完全了解。


為什么啰嗦這么一大通呢?就是因?yàn)椋恢币詠矸簽E于程序員社群的“語言之爭(zhēng)”,背后真正的原因其實(shí)并不在于語言實(shí)質(zhì)上的優(yōu)劣,而在于觀察者的眼睛。在觀察者的眼睛里面,語言并非一門工具,而是自己花了N多時(shí)間(其中尤數(shù)C++為最)來“修煉”的技能,對(duì)于這樣的技能,被否定無疑等同于自己被否定。

所以,從心理學(xué)上講,語言并不是工具(盡管一直有這么一種呼吁),而是信仰。這樣的信仰在越是花得時(shí)間久的語言上越是激烈。有趣的是,幾乎所有的“熱鬧”的社群都有這樣的現(xiàn)象,Java、Python、Ruby…莫不如是;因?yàn)榫退阏Z言本身不復(fù)雜,程序員仍然還是要投入大量的精力去學(xué)習(xí)各種各樣的框架類庫(想想Java的那些框架?)。因此這些語言社區(qū)的信仰未必不比C++社群的強(qiáng)烈。

然而,一旦弄清我們?yōu)槭裁磿?huì)把語言當(dāng)成信仰,就非常有助于擺脫在看待語言時(shí)的“自我服務(wù)偏見”,從客觀的角度去看待問題。——“當(dāng)你看到的是支持某個(gè)意見的證據(jù)時(shí),試著去想一想有哪些證據(jù)是不支持它的”。

那么為什么要擺脫自我服務(wù)偏見?說小了,是為了成為一個(gè)更優(yōu)秀的程序員(誰也不希望因?yàn)槠姸ナ褂靡婚T低效的語言乃至不妥當(dāng)?shù)恼Z言)。說大了是節(jié)省生命(因?yàn)槠娍赡軐?dǎo)致越陷越深,浪費(fèi)時(shí)間)。 所以,如果你能夠理性的思考我們將要討論的問題,避免自我服務(wù)偏見(就當(dāng)你從來沒有花時(shí)間在C++上一樣)。那么我們便可以開始討論真正的問題了。

現(xiàn)在,幾乎每個(gè)學(xué)習(xí)C++程序的都知道C++的核心問題是其復(fù)雜性;甚至本身不在C++社群的,也知道這是事實(shí)。群眾的眼睛是雪亮的,何況這還是個(gè)太顯而易見的事實(shí)。

但看了無數(shù)篇闡述C++復(fù)雜性的文章,和爭(zhēng)論C++復(fù)雜性的吐沫星子(包括我前段時(shí)間寫的兩篇關(guān)于C++的總結(jié))。我始終都有一個(gè)感覺——沒分析透,就跟盲人摸象一樣。正如“Why C++”的一位讀者批評(píng)的,我在文章里面沒有寫明到底哪些是C++的“非本質(zhì)復(fù)雜性”。

當(dāng)然,我自己憑感覺就能知道,而接觸C++一段時(shí)間的人大致也能知道,但新手乃至非新手則對(duì)我所謂的“非本質(zhì)復(fù)雜性”根本沒有一個(gè)具體的認(rèn)識(shí),這就使得那篇“Why C++”脫離了原本的意圖——面向所有C++使用者和學(xué)習(xí)者。

同樣的原因,在寫了“你應(yīng)當(dāng)如何學(xué)習(xí)C++”一文之后,當(dāng)孟巖先生邀請(qǐng)我給《程序員》寫一個(gè)系列的文章,介紹一下我在接觸C++的過程中的態(tài)度和認(rèn)識(shí)轉(zhuǎn)變時(shí),我雖然非常高興的答應(yīng)了,但直到現(xiàn)在3個(gè)月過去了還是顆粒無收。

為什么?因?yàn)槲矣X得真正本質(zhì)的問題沒有被清晰的觸摸到;所以直到現(xiàn)在我都沒有動(dòng)筆,免得廢話說了一大堆,除了能被當(dāng)成小說讀讀之外,對(duì)真正考慮是否要學(xué)習(xí)乃至使用C++的人未必有什么實(shí)際用處。

然而,這么個(gè)念頭一直都放在潛意識(shí)里面。前一陣子和Bjarne通信,談到了關(guān)于C++復(fù)雜性的一些想法,在郵件里面總結(jié)了一下C++的復(fù)雜性來源,感覺思路清晰了許多。而這篇文章要達(dá)到的目的,正是傳達(dá)對(duì)C++的復(fù)雜性的一個(gè)具體而明確的認(rèn)識(shí),有了這個(gè)認(rèn)識(shí)作為支持,我們便可以推導(dǎo)出學(xué)習(xí)C++的***(實(shí)踐者)的方法。

為什么要學(xué)習(xí)(并使用)C++

顯然,如果找不出要學(xué)習(xí)C++程序的理由,那么談什么“正確的學(xué)習(xí)方法”等于是廢話。

首先重復(fù)一句Bjarne的話:“我們的系統(tǒng)已經(jīng)是極度復(fù)雜的了,為了避開C++的復(fù)雜性而干脆不用C++(Linus的做法),無異于因噎廢食。”在所有可用C和C++的領(lǐng)域,C++都是比C更好的語言。當(dāng)我說“更好的”時(shí)候,我說的是C++擁有比C更安全的類型檢查、更好的抽象機(jī)制、更優(yōu)秀的庫。

當(dāng)然,凡事都有例外,如果你做的項(xiàng)目1)不大。2)編碼中用不到什么抽象機(jī)制,甚至ADT(抽象數(shù)據(jù)類型,例如std::complex這種不含多態(tài)和繼承的)也用不到,RAII也用不到,異常也用不到。3)你連基礎(chǔ)庫(如,簡(jiǎn)化資源管理的智能指針、智能容器)都用不著。

【編輯推薦】

  1. 簡(jiǎn)介學(xué)習(xí)C++總結(jié)之談
  2. 對(duì)C++庫函數(shù)進(jìn)行學(xué)習(xí)探索總結(jié)筆記
  3. C++類庫設(shè)計(jì)的基本構(gòu)思與方法
  4. C++語言真的還有市場(chǎng)價(jià)值?
  5. C++類庫設(shè)計(jì)的基本構(gòu)思與方法
責(zé)任編輯:chenqingxiang 來源: 51CTO.com
相關(guān)推薦

2010-01-21 14:51:02

C++函數(shù)指針

2010-01-12 18:20:31

Visual C++

2010-01-06 13:39:51

擴(kuò)展Jquery的Js

2010-01-12 10:28:58

C++復(fù)雜性

2010-03-01 18:13:22

Python程序

2010-03-10 13:55:35

交換機(jī)故障

2010-02-23 14:19:30

Python目錄操作

2010-01-26 14:53:43

C++

2010-03-04 10:01:01

Android基本組件

2009-12-21 13:51:54

ADO.NET處理

2013-07-02 09:58:38

ClojureClojure教程

2016-09-30 15:13:01

Python代碼

2010-01-20 10:40:44

C++Test

2009-12-29 09:01:46

ADSL斷線

2010-01-06 15:35:06

JSON對(duì)象

2024-12-03 15:38:14

2010-01-27 09:46:32

C++Builder開

2017-08-03 17:30:26

戴爾IoT設(shè)備

2009-11-25 17:22:12

路由器安裝

2024-04-19 09:37:49

Ollama大語言模型開源
點(diǎn)贊
收藏

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

主站蜘蛛池模板: 久久一区| 狠狠的干 | 天天拍天天色 | 欧美一区视频 | 久久无毛 | 久久精品99国产精品日本 | 久久国内 | 亚洲综合视频 | 国产精品久久久久久亚洲调教 | 国内自拍视频在线观看 | 久久一级免费视频 | 日韩中文一区 | 精品国产乱码久久久久久牛牛 | 久久精品在线免费视频 | 男女国产网站 | 天天干com | 欧美一区二区大片 | 99r在线| 日韩在线资源 | 国产一区二区三区免费 | 国产亚洲久 | 久久精品a | 精品九九九 | 黄色大全免费看 | 日韩在线免费视频 | 天天操夜夜操 | caoporn免费在线视频 | 成人久久18免费 | 欧美日韩在线视频观看 | 日韩欧美国产不卡 | 国产精品美女久久久 | 久久久久久久久久久久久久av | 日韩毛片播放 | 国产精品视频在线播放 | 久久日韩粉嫩一区二区三区 | 九九伦理电影 | 日韩av啪啪网站大全免费观看 | 亚洲精品一区久久久久久 | 亚洲精品国产成人 | 美女在线视频一区二区三区 | 婷婷在线免费 |