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

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

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

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

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

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

對象只向用戶(使用對象的編程人員)顯示必須的部分,從而簡化對象的使用。用戶不必知道的所有內(nèi)部機(jī)制都隱藏在幕后。這一切都包括在面向?qū)ο缶幊痰母拍钪?。OOP可以用模塊化方法進(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)件。

入門簡介

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

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


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

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

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

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

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

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

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

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

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

然而,這么個念頭一直都放在潛意識里面。前一陣子和Bjarne通信,談到了關(guān)于C++復(fù)雜性的一些想法,在郵件里面總結(jié)了一下C++的復(fù)雜性來源,感覺思路清晰了許多。而這篇文章要達(dá)到的目的,正是傳達(dá)對C++的復(fù)雜性的一個具體而明確的認(rèn)識,有了這個認(rèn)識作為支持,我們便可以推導(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)我說“更好的”時候,我說的是C++擁有比C更安全的類型檢查、更好的抽象機(jī)制、更優(yōu)秀的庫。

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

【編輯推薦】

  1. 簡介學(xué)習(xí)C++總結(jié)之談
  2. C++庫函數(shù)進(jìn)行學(xué)習(xí)探索總結(jié)筆記
  3. C++類庫設(shè)計(jì)的基本構(gòu)思與方法
  4. C++語言真的還有市場價值?
  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對象

2024-12-03 15:38:14

2010-01-27 09:46:32

C++Builder開

2024-04-19 09:37:49

Ollama大語言模型開源

2017-08-03 17:30:26

戴爾IoT設(shè)備

2009-11-25 17:22:12

路由器安裝
點(diǎn)贊
收藏

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

主站蜘蛛池模板: 久久久久国产精品一区二区 | 成人午夜视频在线观看 | 成人av观看 | 亚洲精品视频免费观看 | 在线久草 | 日韩在线免费 | 欧美综合一区二区 | 国产一区久久久 | 精品91久久 | 午夜免费福利电影 | 91精品一区二区三区久久久久 | 亚洲午夜av久久乱码 | 久热电影| 亚州av在线| 久久高清| 国产高清视频 | 噜噜噜噜狠狠狠7777视频 | 亚洲福利av| 日韩一区二区三区在线视频 | 成人av电影在线观看 | 91免费高清| 日韩www| 久久综合伊人一区二区三 | 久久夜夜 | 成人午夜激情 | 欧美日韩欧美 | 九九热国产精品视频 | 亚洲精品二区 | 日日夜夜精品免费视频 | 91精品国产91久久久久久吃药 | 一级日韩 | 亚洲欧美在线观看视频 | 黄色在线观看网址 | 2018中文字幕第一页 | 狠狠干狠狠操 | 日韩欧美中文 | 99在线免费观看 | 97久久超碰| 亚洲成人av| 久久精品国产99国产精品 | 性一交一乱一伦视频免费观看 |