C++学习之路(一)
第一章:C++語言概述
前言:這里學(xué)習(xí)C++教材是選用的清華大學(xué)出版社的《C++語言基礎(chǔ)教程》第二版,該版本語言較為通俗易懂,概念清晰,便于理解。因為之前學(xué)習(xí)過C語言,因此在學(xué)習(xí)本書之際,也是抱著一遍復(fù)習(xí)c語言,一遍深入學(xué)習(xí)C++原理,重點將“指針”、“面向?qū)ο蟆薄ⅰ邦惡蛯ο蟆薄ⅰ袄^承性和派生類”、“多態(tài)性和虛函數(shù)”等概念深入理解,并多做習(xí)題鞏固,多上機(jī)編程,提升代碼能力。
同時配套的慕課有:學(xué)堂在線平臺 清華大學(xué) 鄭莉教授 C++語言程序設(shè)計基礎(chǔ)(2021秋)
1.1 C++語言是一種面向?qū)ο蟮某绦蛟O(shè)計語言
什么是面向?qū)ο?#xff1f;面向?qū)ο笈c面向過程有何區(qū)別?
首先,我們先了解對象的概念,對象是軟件系統(tǒng)的基本構(gòu)成單位,對象是對客觀世界中實際存在的某種事物的抽象,即:描述客觀事物的一個實體。對象是一組屬性和一組行為的集合,屬性用來描述對象的靜態(tài)特性,用若干數(shù)據(jù)表示;行為則描述對象動態(tài)特性,用若干操作表示,即數(shù)據(jù)與操作的集合。
而面向?qū)ο罂傮w來講則是:運用一些新概念和新方法構(gòu)造系統(tǒng)的軟件開發(fā)方法,這些新概念包括對象、類、封裝、聚合、繼承、多態(tài)性等,這些也體現(xiàn)了面向?qū)ο蟮奶攸c。
面向過程:即以過程為中心的編程思想,主要的特點是模塊化編程,比如:小明起床去學(xué)校,可以分解為四步流程:(1)起床 (2)穿衣 (3)洗臉?biāo)⒀?(4)去學(xué)校
面向?qū)ο髣t是將每個元素抽象成對象,對象有自己的屬性,關(guān)注對象的行為,而并非這個事件。
同時面向?qū)ο笥卸喾N新概念,新方法需要理解:
1.類:類是一種類型,是對具有相同屬性對象的描述,類是創(chuàng)建對象的樣板,包含著所創(chuàng)建對象的數(shù)據(jù)描述和操作定義,類是一種具有共同屬性、行為的若干對象的統(tǒng)一描述體。
分類是其主要特點。
2.封裝:即將對象的屬性和行為結(jié)合為一個封裝體,其中,屬性由若干不同類型數(shù)據(jù)組成,對象的行為由若干操作組成。操作是通過函數(shù)實現(xiàn),又稱為方法。
3.聚合:聚合是類之間的一種包含關(guān)系,一個復(fù)雜類可以由若干簡單的對象組成,其中的方法成為聚合。例如:描述一架飛機(jī),可以將飛機(jī)拆分為機(jī)翼、機(jī)身、機(jī)尾、發(fā)動機(jī)等多干部位。
4.繼承:是創(chuàng)建新類的一種方法,繼承用來解決一般類和特殊類的關(guān)系,其中,特殊類具有一般類的屬性和行為,并且它還有自己特殊的屬性和行為,這時稱特殊類是對一般類的繼承。
在軟件開發(fā)中,可將已經(jīng)開發(fā)好的類存放到類庫內(nèi),開發(fā)新系統(tǒng)時,便可直接使用或繼承使用已有的類。繼承可以減少冗余性,提高重用性。減少編程工作量,提高編程質(zhì)量。
5.多態(tài)性:即一對多的狀態(tài),一個函數(shù)名或同一個運算符對應(yīng)于不同的實現(xiàn)或功能。
綜上所述:面向?qū)ο蟮姆椒w納以下幾點:
(1):將客觀事物中抽象出的數(shù)據(jù)和方法構(gòu)成一個集合體,便是對象。
(2):將相同類型中對象抽象出共性,形成類。類具有封裝性和隱藏性。
(3):類是一個封裝體,類中多數(shù)數(shù)據(jù)只能通過本類的方法進(jìn)行處理,這些數(shù)據(jù)在類外不可見,無法訪問。
(4):類是通過外部接口與外界進(jìn)行發(fā)生關(guān)系,這些外部接口提供了類的行為。
(5):對象之間通過消息進(jìn)行通信。
1.2 C++語言對面向?qū)ο蟪绦蛟O(shè)計方法的支持
1.C++支持?jǐn)?shù)據(jù)封裝
2.C++語言的類中包含私有、公有和保護(hù)成員
3.C++語言中通過發(fā)送消息處理對象
4.C++語言中允許友元破壞封裝性
5.C++語言允許函數(shù)名和運算符重載
6.C++語言支持繼承性
7.C++語言支持動態(tài)聯(lián)編
C++語言與C語言差別在于:C++語言是面向?qū)ο?#xff0c;而C語言是面向過程,C++語言在對C語言改進(jìn)的基礎(chǔ)上,又增添了支持面向?qū)ο蟮男聝?nèi)容。
1.3 C++語言的詞法和詞法規(guī)則
1.C++語言字符集
2.單詞及詞法規(guī)則
(標(biāo)識符、關(guān)鍵字、運算符、分隔符、常量、注釋符)
注:存放在內(nèi)存中的字符串常量最后有一個結(jié)束符,即空字符,它用轉(zhuǎn)義序列方法表示:‘\0’
1.4 C++語言程序結(jié)構(gòu)特點
與C語言結(jié)構(gòu)有部分不同,例如提取符:“>>”,插入符:“<<”,輸入輸出:cin>>(變量1)>>(變量名2)…;
輸出操作:cout<<(表達(dá)式1)<<(表達(dá)式2)…;
下面展示C++語言的一個示范程序:
#include<iostream> #include<cstdlib> int main() {double x,y;std::cout<<"Enter two float numbers:";std::cin>>x>>y;double z=x+y;std::cout<<"x+y="<<z<<std::endl; system("pause") ;return 0;}運行程序,輸入7.2 9.3 換行得到結(jié)果:x+y=16.5
如下圖:
注:編譯軟件為dev c++ 或 visual c++
總結(jié)
以上是生活随笔為你收集整理的C++学习之路(一)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PyTorch框架学习十——基础网络层(
- 下一篇: Opencv和C++实现canny边缘检