




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、教師:況立群教師:況立群 電話:電話:1380343281013803432810 地點(diǎn):地點(diǎn):7 7號(hào)樓號(hào)樓802802 教材及參考書(shū)目教材及參考書(shū)目 vC+語(yǔ)言程序設(shè)計(jì)呂鳳翥著電子工業(yè)出版語(yǔ)言程序設(shè)計(jì)呂鳳翥著電子工業(yè)出版 社社2007 vC+程序設(shè)計(jì)教程錢(qián)能編著清華大學(xué)出程序設(shè)計(jì)教程錢(qián)能編著清華大學(xué)出 版社版社1999 vC+語(yǔ)言程序設(shè)計(jì)鄭莉等編著清華大學(xué)出語(yǔ)言程序設(shè)計(jì)鄭莉等編著清華大學(xué)出 版社版社1999 vC+語(yǔ)言及其程序設(shè)計(jì)教程(修訂版)張國(guó)語(yǔ)言及其程序設(shè)計(jì)教程(修訂版)張國(guó) 峰編著電子工業(yè)出版社峰編著電子工業(yè)出版社1997 面向?qū)ο蟪绦蛟O(shè)計(jì)面向?qū)ο蟪绦蛟O(shè)計(jì) 前言前言 第第1 1章面
2、向?qū)ο笈c章面向?qū)ο笈cC+C+語(yǔ)言概述語(yǔ)言概述 第第2 2章數(shù)據(jù)類(lèi)型和表達(dá)式章數(shù)據(jù)類(lèi)型和表達(dá)式 第第3 3章預(yù)處理和語(yǔ)句章預(yù)處理和語(yǔ)句 第第4 4章函數(shù)章函數(shù) 第第5 5章類(lèi)和簡(jiǎn)單對(duì)象章類(lèi)和簡(jiǎn)單對(duì)象 第第6 6章復(fù)雜對(duì)象章復(fù)雜對(duì)象 第第7 7章繼承性和派生類(lèi)章繼承性和派生類(lèi) 第第8 8章多態(tài)性和虛函數(shù)章多態(tài)性和虛函數(shù) 第第9 9章章C+C+的的I/OI/O流庫(kù)流庫(kù) 地位與作用地位與作用 v是計(jì)算機(jī)科學(xué)與技術(shù)專(zhuān)業(yè)本科生的一門(mén)必是計(jì)算機(jī)科學(xué)與技術(shù)專(zhuān)業(yè)本科生的一門(mén)必 修課程修課程 v面向?qū)ο筌浖_(kāi)發(fā)集抽象性、封裝性、繼承面向?qū)ο筌浖_(kāi)發(fā)集抽象性、封裝性、繼承 性和多態(tài)性于一體,可以幫助人們開(kāi)發(fā)出模性和
3、多態(tài)性于一體,可以幫助人們開(kāi)發(fā)出模 塊化、數(shù)據(jù)抽象程度高的,體現(xiàn)信息隱蔽、塊化、數(shù)據(jù)抽象程度高的,體現(xiàn)信息隱蔽、 可復(fù)用、易修改、易擴(kuò)充等特性的程序可復(fù)用、易修改、易擴(kuò)充等特性的程序 內(nèi)容簡(jiǎn)介內(nèi)容簡(jiǎn)介 v面向?qū)ο蟮幕舅枷朊嫦驅(qū)ο蟮幕舅枷?vC+語(yǔ)言的基本概念、基本語(yǔ)法和編程方法語(yǔ)言的基本概念、基本語(yǔ)法和編程方法 vC+語(yǔ)言的語(yǔ)言的面向?qū)ο筇卣髅嫦驅(qū)ο筇卣?類(lèi)與對(duì)象類(lèi)與對(duì)象 繼承與派生繼承與派生 多態(tài)性與虛函數(shù)多態(tài)性與虛函數(shù) 學(xué)習(xí)方法學(xué)習(xí)方法 v多練習(xí),掌握基本概念多練習(xí),掌握基本概念 v多讀程序,學(xué)習(xí)編程方法與技巧多讀程序,學(xué)習(xí)編程方法與技巧 v多上機(jī)實(shí)踐,加強(qiáng)動(dòng)手能力多上機(jī)實(shí)踐,加強(qiáng)動(dòng)手
4、能力 v多剖析范例,積累編程經(jīng)驗(yàn)多剖析范例,積累編程經(jīng)驗(yàn) 第第1章面向?qū)ο笈c章面向?qū)ο笈cC+語(yǔ)言概述語(yǔ)言概述 v基本要求基本要求 掌握:面向?qū)ο蟪绦蛟O(shè)計(jì)的基本思想及掌握:面向?qū)ο蟪绦蛟O(shè)計(jì)的基本思想及 基本概念;基本概念;c+中支持面向?qū)ο蟮奶攸c(diǎn);中支持面向?qū)ο蟮奶攸c(diǎn); 面向?qū)ο蟮能浖_(kāi)發(fā)環(huán)境;面向?qū)ο蟮能浖_(kāi)發(fā)環(huán)境;visual c+ 開(kāi)發(fā)工作臺(tái)的主要功能。開(kāi)發(fā)工作臺(tái)的主要功能。 第第1章章C+語(yǔ)言概述語(yǔ)言概述 v1.1C+語(yǔ)言語(yǔ)言及特點(diǎn)及特點(diǎn) v1.2面向?qū)ο蟮姆椒嫦驅(qū)ο蟮姆椒?v1.3C語(yǔ)言與語(yǔ)言與C+語(yǔ)言的關(guān)系語(yǔ)言的關(guān)系 v1.4C+的詞法和詞法規(guī)則的詞法和詞法規(guī)則 v1.5C+程序的
5、結(jié)構(gòu)程序的結(jié)構(gòu) v1.6C+程序的編輯、編譯和運(yùn)行程序的編輯、編譯和運(yùn)行 v編程語(yǔ)言的發(fā)展編程語(yǔ)言的發(fā)展 vC+的起源和特點(diǎn)的起源和特點(diǎn) 1.1C+語(yǔ)言及特點(diǎn)語(yǔ)言及特點(diǎn) 1.1.1編程語(yǔ)言的發(fā)展編程語(yǔ)言的發(fā)展 v機(jī)器語(yǔ)言(二進(jìn)制碼)機(jī)器語(yǔ)言(二進(jìn)制碼) v匯編語(yǔ)言匯編語(yǔ)言 v20世紀(jì)世紀(jì)50年代中期,年代中期,F(xiàn)ORTRAN語(yǔ)言語(yǔ)言 v20世紀(jì)世紀(jì)50年代中期,年代中期,Algol語(yǔ)言語(yǔ)言 在計(jì)算機(jī)語(yǔ)言發(fā)展史上具有在計(jì)算機(jī)語(yǔ)言發(fā)展史上具有劃時(shí)代劃時(shí)代的意義,的意義, 引入了許多程序設(shè)計(jì)概念。如引入了許多程序設(shè)計(jì)概念。如變量變量、數(shù)組數(shù)組、循環(huán)循環(huán)、 分支分支等。等。 提出提出塊塊(BeginE
6、nd)思想思想,對(duì)數(shù)據(jù)進(jìn)行保護(hù),對(duì)數(shù)據(jù)進(jìn)行保護(hù), 是一種是一種初級(jí)封裝初級(jí)封裝。 1.1.1編程語(yǔ)言的發(fā)展編程語(yǔ)言的發(fā)展(續(xù))(續(xù)) v20世紀(jì)世紀(jì)60年代中期,年代中期,Simula 67語(yǔ)言語(yǔ)言 面向?qū)ο笳Z(yǔ)言的鼻祖面向?qū)ο笳Z(yǔ)言的鼻祖,提出了提出了對(duì)象對(duì)象、類(lèi)類(lèi)的概的概 念,并支持類(lèi)的念,并支持類(lèi)的繼承繼承。 v20世紀(jì)世紀(jì)70年代中期,年代中期,Ada語(yǔ)言語(yǔ)言 支持?jǐn)?shù)據(jù)抽象類(lèi)型支持?jǐn)?shù)據(jù)抽象類(lèi)型的最重要的語(yǔ)言之一,但的最重要的語(yǔ)言之一,但 不完全支持繼承不完全支持繼承。 v20世紀(jì)世紀(jì)70年代中期,年代中期,Smalltalk語(yǔ)言語(yǔ)言 最有影響最有影響的面向?qū)ο笳Z(yǔ)言之一,豐富了面向的面向?qū)ο?/p>
7、語(yǔ)言之一,豐富了面向 對(duì)象的概念。對(duì)象的概念。 v20世紀(jì)世紀(jì)80年代中期后出現(xiàn)年代中期后出現(xiàn)C+等多種面向?qū)ο笳Z(yǔ)言等多種面向?qū)ο笳Z(yǔ)言 1.1.2C+的起源和特點(diǎn)的起源和特點(diǎn) 一、一、C+的起源的起源 v在在C語(yǔ)言基礎(chǔ)語(yǔ)言基礎(chǔ)上為上為支持面向?qū)ο笾С置嫦驅(qū)ο蟮某绦蛟O(shè)計(jì)研的程序設(shè)計(jì)研 制的一個(gè)制的一個(gè)通用目的通用目的的程序設(shè)計(jì)語(yǔ)言;的程序設(shè)計(jì)語(yǔ)言; v由由AT int wdcount,chcount; wdcount=1; chcount=0; printf(*:Please input any phrasen); 1.2.1面向過(guò)程與面向?qū)ο蟪绦蛟O(shè)計(jì)面向過(guò)程與面向?qū)ο蟪绦蛟O(shè)計(jì)(續(xù)續(xù)) 面向過(guò)程
8、的方法面向過(guò)程的方法 1.2.1面向過(guò)程與面向?qū)ο蟪绦蛟O(shè)計(jì)面向過(guò)程與面向?qū)ο蟪绦蛟O(shè)計(jì)(續(xù)續(xù)) while(ch=getche()!=r) chcount+; if(ch= ) wdcount+; printf(n*:The number of word is %dn, wdcount); printf(n*:The number of char is %dn, chcount); 1.2.1面向過(guò)程與面向?qū)ο蟪绦蛟O(shè)計(jì)面向過(guò)程與面向?qū)ο蟪绦蛟O(shè)計(jì)(續(xù)續(xù)) #include #include class count public: count(); void process(); void disp
9、lay(); private: int wdcount,chcount; ; 私有成員私有成員 構(gòu)造函數(shù)構(gòu)造函數(shù) 成員函數(shù)成員函數(shù) 數(shù)據(jù)成員數(shù)據(jù)成員 成員函數(shù)成員函數(shù) 定義類(lèi)定義類(lèi) 公有成員公有成員 面向?qū)ο蟮姆椒嫦驅(qū)ο蟮姆椒?1.2.1面向過(guò)程與面向?qū)ο蟪绦蛟O(shè)計(jì)面向過(guò)程與面向?qū)ο蟪绦蛟O(shè)計(jì)(續(xù)續(xù)) count:count() wdcount=1; chcount=0; void count:display() printf(n*:The number of word is %dn, wdcount); printf(n*:The number of char is %dn, chcount)
10、; 1.2.1面向過(guò)程與面向?qū)ο蟪绦蛟O(shè)計(jì)面向過(guò)程與面向?qū)ο蟪绦蛟O(shè)計(jì)(續(xù)續(xù)) void count:process() char ch; cout*:Please input any phraseendl; while(ch=getche()!=r) chcount+; if(ch= ) wdcount+; coutendl; 1.2.1面向過(guò)程與面向?qū)ο蟪绦蛟O(shè)計(jì)面向過(guò)程與面向?qū)ο蟪绦蛟O(shè)計(jì)(續(xù)續(xù)) void main() count A; A.process(); A.display(); 運(yùn)運(yùn) 行行 結(jié)結(jié) 果果 *Please input any phrase. I am a teacher
11、*:The number of word is 4 *:The number of char is 15 定義對(duì)象定義對(duì)象 調(diào)用公有成員函數(shù)調(diào)用公有成員函數(shù) 調(diào)用公有成員函數(shù)調(diào)用公有成員函數(shù) 1.2.1面向過(guò)程與面向?qū)ο蟪绦蛟O(shè)計(jì)面向過(guò)程與面向?qū)ο蟪绦蛟O(shè)計(jì)(續(xù)續(xù)) v是一種數(shù)學(xué)思維或計(jì)是一種數(shù)學(xué)思維或計(jì) 算機(jī)思維方法,與人算機(jī)思維方法,與人 們認(rèn)識(shí)世界的方法不們認(rèn)識(shí)世界的方法不 同同 v以不穩(wěn)定的、多變的以不穩(wěn)定的、多變的 “過(guò)程過(guò)程”和和“操作操作” ” 為中心來(lái)構(gòu)造系統(tǒng)為中心來(lái)構(gòu)造系統(tǒng) v可重用性較差可重用性較差 v是建立在認(rèn)識(shí)方法學(xué)是建立在認(rèn)識(shí)方法學(xué) 基礎(chǔ)上的一項(xiàng)技術(shù)科基礎(chǔ)上的一項(xiàng)技術(shù)科
12、學(xué),比較自然地模擬學(xué),比較自然地模擬 了人類(lèi)認(rèn)識(shí)客觀世界了人類(lèi)認(rèn)識(shí)客觀世界 的方式;的方式; v以相對(duì)穩(wěn)定的以相對(duì)穩(wěn)定的“對(duì)象對(duì)象” 和和“數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)”為中為中 心來(lái)構(gòu)造系統(tǒng)心來(lái)構(gòu)造系統(tǒng) v可重用性較好可重用性較好 面向過(guò)程程序設(shè)計(jì)面向?qū)ο蟪绦蛟O(shè)計(jì) 1.2.1面向過(guò)程與面向?qū)ο蟪绦蛟O(shè)計(jì)面向過(guò)程與面向?qū)ο蟪绦蛟O(shè)計(jì)(續(xù)續(xù)) 面向過(guò)程程序設(shè)計(jì)面向過(guò)程程序設(shè)計(jì)面向?qū)ο蟪绦蛟O(shè)計(jì)面向?qū)ο蟪绦蛟O(shè)計(jì) P1 P2 P3 P4 P5 O1 O2 O3 O4 O5 P6 1.2.1面向過(guò)程與面向?qū)ο蟪绦蛟O(shè)計(jì)面向過(guò)程與面向?qū)ο蟪绦蛟O(shè)計(jì)(續(xù)續(xù)) 面向過(guò)程程序設(shè)計(jì)面向過(guò)程程序設(shè)計(jì)面向?qū)ο蟪绦蛟O(shè)計(jì)面向?qū)ο蟪绦蛟O(shè)計(jì) P
13、1 P2 P3 P5 O1 O2 O3 O4 O5 P6 O4 1.2.2抽象在面向?qū)ο笾械淖饔贸橄笤诿嫦驅(qū)ο笾械淖饔?一、抽象的概念一、抽象的概念 v抽象代表著一個(gè)對(duì)象的抽象代表著一個(gè)對(duì)象的本質(zhì)特征本質(zhì)特征,這個(gè)特征將,這個(gè)特征將 這個(gè)對(duì)象與所有其他種類(lèi)的對(duì)象區(qū)別開(kāi)來(lái);這個(gè)對(duì)象與所有其他種類(lèi)的對(duì)象區(qū)別開(kāi)來(lái); v抽象是通過(guò)從抽象是通過(guò)從特定特定的實(shí)例中抽取的實(shí)例中抽取共同共同的性質(zhì)以的性質(zhì)以 形成形成一般化一般化的概念的過(guò)程;的概念的過(guò)程; v抽象具有抽象具有層次層次; 汽車(chē)汽車(chē)輪船輪船飛機(jī)飛機(jī) 交通工具交通工具 1.2.2抽象在面向?qū)ο笾械淖饔贸橄笤诿嫦驅(qū)ο笾械淖饔?續(xù)續(xù)) 二、面向?qū)ο蟪橄?/p>
14、的原理二、面向?qū)ο蟪橄蟮脑?數(shù)據(jù)抽象、行為共享、進(jìn)化、確定性數(shù)據(jù)抽象、行為共享、進(jìn)化、確定性 1、數(shù)據(jù)抽象、數(shù)據(jù)抽象 為程序員提供了一種對(duì)數(shù)據(jù)和為操作這些數(shù)據(jù)為程序員提供了一種對(duì)數(shù)據(jù)和為操作這些數(shù)據(jù) 所需要的算法的抽象;所需要的算法的抽象;是面向?qū)ο蠓椒ǖ暮诵氖敲嫦驅(qū)ο蠓椒ǖ暮诵?,包,?括:括: 模塊化:模塊化:構(gòu)成了面向?qū)ο笥?jì)算的本質(zhì);構(gòu)成了面向?qū)ο笥?jì)算的本質(zhì); 封裝封裝(信息隱藏):(信息隱藏):將一個(gè)模塊的細(xì)節(jié)部分對(duì)用將一個(gè)模塊的細(xì)節(jié)部分對(duì)用 戶隱藏起來(lái),用戶只能通過(guò)戶隱藏起來(lái),用戶只能通過(guò)受保護(hù)的接口受保護(hù)的接口來(lái)訪問(wèn)來(lái)訪問(wèn) 某個(gè)模塊,而不能直接訪問(wèn)一個(gè)模塊內(nèi)部的細(xì)節(jié);某個(gè)模塊,而
15、不能直接訪問(wèn)一個(gè)模塊內(nèi)部的細(xì)節(jié); 類(lèi)類(lèi) 公有成員公有成員 1.2.2抽象在面向?qū)ο笾械淖饔贸橄笤诿嫦驅(qū)ο笾械淖饔?續(xù)續(xù)) 2、行為共享、行為共享 v行為行為是由是由實(shí)體實(shí)體的的外部接口外部接口定義的定義的 v行為共享行為共享指指許多實(shí)體許多實(shí)體具有具有相同相同的的接口接口,可增加,可增加 系統(tǒng)的靈活性;系統(tǒng)的靈活性; v支持行為共享的方式支持行為共享的方式 分類(lèi)與層次分類(lèi)分類(lèi)與層次分類(lèi) 多態(tài)與繼承多態(tài)與繼承 對(duì)象對(duì)象公有成員公有成員函數(shù)名函數(shù)名 1.2.2抽象在面向?qū)ο笾械淖饔贸橄笤诿嫦驅(qū)ο笾械淖饔?續(xù)續(xù)) 3、進(jìn)化、進(jìn)化 v需求進(jìn)化需求進(jìn)化(虛函數(shù))(虛函數(shù)) v進(jìn)化式的問(wèn)題求解進(jìn)化式的問(wèn)題
16、求解(繼承的構(gòu)造函數(shù))(繼承的構(gòu)造函數(shù)) 4、確定性、確定性 v確保每個(gè)行為項(xiàng)都有一個(gè)正確的解釋?zhuān)到y(tǒng)不確保每個(gè)行為項(xiàng)都有一個(gè)正確的解釋?zhuān)到y(tǒng)不 會(huì)因不能響應(yīng)某一行為而失?。粫?huì)因不能響應(yīng)某一行為而失??; v確定性與類(lèi)型的正確性有關(guān);確定性與類(lèi)型的正確性有關(guān); 1.2.3面向?qū)ο竺嫦驅(qū)ο蟮母拍畹母拍?面向?qū)ο笫沁\(yùn)用面向?qū)ο笫沁\(yùn)用對(duì)象對(duì)象、類(lèi)類(lèi)、繼承繼承、封裝封裝、包含包含、消息消息 傳遞傳遞、多態(tài)性多態(tài)性等概念來(lái)構(gòu)造系統(tǒng)的軟件開(kāi)發(fā)方法;等概念來(lái)構(gòu)造系統(tǒng)的軟件開(kāi)發(fā)方法; 一、對(duì)象一、對(duì)象 1、概念上、概念上 對(duì)象是代表著正在創(chuàng)建的系統(tǒng)中的一個(gè)對(duì)象是代表著正在創(chuàng)建的系統(tǒng)中的一個(gè)實(shí)體實(shí)體; 2、實(shí)現(xiàn)形
17、式上、實(shí)現(xiàn)形式上 對(duì)象是一個(gè)對(duì)象是一個(gè)狀態(tài)狀態(tài)和和操作(或行為)操作(或行為)的的封裝體封裝體; 3、對(duì)象的定義、對(duì)象的定義 狀態(tài)狀態(tài):對(duì)象的狀態(tài)由這個(gè)對(duì)象的:對(duì)象的狀態(tài)由這個(gè)對(duì)象的屬性屬性和這些和這些屬性屬性 的當(dāng)前值的當(dāng)前值決定。屬性是靜態(tài)的,當(dāng)前值是動(dòng)態(tài)的決定。屬性是靜態(tài)的,當(dāng)前值是動(dòng)態(tài)的 一個(gè)對(duì)象具有一個(gè)對(duì)象具有狀態(tài)狀態(tài)、行為行為和和標(biāo)識(shí)標(biāo)識(shí)。 1.2.3面向?qū)ο蟮母拍蠲嫦驅(qū)ο蟮母拍?續(xù)續(xù)) 行為行為:一個(gè)對(duì)象如何以:一個(gè)對(duì)象如何以狀態(tài)變化狀態(tài)變化和和消息傳遞消息傳遞的形的形 式進(jìn)行作用和對(duì)外界進(jìn)行反應(yīng)。式進(jìn)行作用和對(duì)外界進(jìn)行反應(yīng)。 一個(gè)對(duì)象的行為代表了這個(gè)對(duì)象的外部可見(jiàn)的一個(gè)對(duì)象的行
18、為代表了這個(gè)對(duì)象的外部可見(jiàn)的 和可測(cè)試的活動(dòng);和可測(cè)試的活動(dòng); 一個(gè)對(duì)象的狀態(tài)代表著它的一個(gè)對(duì)象的狀態(tài)代表著它的行為行為的的累積累積結(jié)果;結(jié)果; 標(biāo)識(shí)標(biāo)識(shí):標(biāo)識(shí)是一個(gè)對(duì)象標(biāo)識(shí)是一個(gè)對(duì)象固有固有的一種的一種特性特性,該特性,該特性 將這個(gè)對(duì)象與其他對(duì)象區(qū)別開(kāi)來(lái);將這個(gè)對(duì)象與其他對(duì)象區(qū)別開(kāi)來(lái); 屬性屬性1 屬性屬性2 . 屬性屬性n 值值1111 值值2121 . 值值n1n1 值值1212 值值2222 . 值值n2n2 對(duì)象對(duì)象1 1 行為行為 值值1111 值值2121 . 值值n1n1 值值1212 值值2222 . 值值n2n2 對(duì)象對(duì)象2 2 行為行為 1.2.3面向?qū)ο蟮母拍蠲嫦驅(qū)ο?/p>
19、的概念(續(xù)續(xù)) 4、對(duì)象的分類(lèi)、對(duì)象的分類(lèi) 實(shí)體對(duì)象實(shí)體對(duì)象 界面對(duì)象界面對(duì)象 控制對(duì)象控制對(duì)象 按作用分類(lèi)按作用分類(lèi) 存儲(chǔ)信息的對(duì)象存儲(chǔ)信息的對(duì)象 支持系統(tǒng)的主要功能支持系統(tǒng)的主要功能 二、類(lèi)二、類(lèi) 1、什么是類(lèi)、什么是類(lèi) 類(lèi)是具有相同屬性和行為特征的若干對(duì)象的類(lèi)是具有相同屬性和行為特征的若干對(duì)象的 集合;集合; 1.2.3面向?qū)ο蟮母拍蠲嫦驅(qū)ο蟮母拍?續(xù)續(xù)) 類(lèi)是創(chuàng)建對(duì)象的樣板類(lèi)是創(chuàng)建對(duì)象的樣板,它包含著所創(chuàng)建對(duì)象,它包含著所創(chuàng)建對(duì)象 的狀態(tài)描述和方法的定義。類(lèi)的完整描述包含了的狀態(tài)描述和方法的定義。類(lèi)的完整描述包含了 外部接口和內(nèi)部算法以及數(shù)據(jù)結(jié)構(gòu)的形式;外部接口和內(nèi)部算法以及數(shù)據(jù)結(jié)構(gòu)的
20、形式; 2、類(lèi)是對(duì)象的抽象描述、類(lèi)是對(duì)象的抽象描述 類(lèi)中包含生成對(duì)象的具體方法類(lèi)中包含生成對(duì)象的具體方法,由一個(gè)類(lèi)所,由一個(gè)類(lèi)所 創(chuàng)建的對(duì)象稱(chēng)為該類(lèi)的實(shí)例;創(chuàng)建的對(duì)象稱(chēng)為該類(lèi)的實(shí)例; 3、類(lèi)是抽象數(shù)據(jù)類(lèi)型的實(shí)現(xiàn)、類(lèi)是抽象數(shù)據(jù)類(lèi)型的實(shí)現(xiàn) 類(lèi)是所有對(duì)象的類(lèi)是所有對(duì)象的共同的行為共同的行為和和不同的狀態(tài)不同的狀態(tài)的的 集合體;集合體; 屬性屬性1 1 屬性屬性2 2 屬性屬性n n 行為行為1 1 行為行為2 2 行為行為m m 值值1111 值值2121 值值n1n1 值值1212 值值2222 值值n2n2 行為行為1 1 值值1111 值值2121 值值n1n1 行為行為m m 值值1212
21、值值2222 值值n2n2 對(duì)象對(duì)象1 1對(duì)象對(duì)象2 2 對(duì)象對(duì)象k k 對(duì)象對(duì)象p p 類(lèi)類(lèi) 類(lèi)與對(duì)象的關(guān)系類(lèi)與對(duì)象的關(guān)系 .3面向?qū)ο蟮拿嫦驅(qū)ο蟮母拍罡拍? (續(xù)續(xù)) ) 1.2.3面向?qū)ο蟮母拍蠲嫦驅(qū)ο蟮母拍?續(xù)續(xù)) 四、多態(tài)性四、多態(tài)性 多態(tài)性指向不同對(duì)象發(fā)送同一條消息,根據(jù)對(duì)多態(tài)性指向不同對(duì)象發(fā)送同一條消息,根據(jù)對(duì) 象的類(lèi)的不同完成不同的行為。象的類(lèi)的不同完成不同的行為。 由函數(shù)和運(yùn)算符的重載及虛函數(shù)實(shí)現(xiàn)類(lèi)的多態(tài)由函數(shù)和運(yùn)算符的重載及虛函數(shù)實(shí)現(xiàn)類(lèi)的多態(tài) 性。性。 綜上,面向?qū)ο缶哂腥筇匦裕悍庋b性、繼承綜上,面向?qū)ο缶哂腥筇匦裕悍庋b性、繼承 性、多態(tài)性。性、多態(tài)性。
22、 三、繼承三、繼承 繼承提供了創(chuàng)建新類(lèi)的一種方法,它的本質(zhì)繼承提供了創(chuàng)建新類(lèi)的一種方法,它的本質(zhì) 特征是行為共享;特征是行為共享; vC+對(duì)對(duì)C語(yǔ)言的改進(jìn)語(yǔ)言的改進(jìn) vC+對(duì)面向?qū)ο蠓椒ǖ闹С謱?duì)面向?qū)ο蠓椒ǖ闹С?1.3C語(yǔ)言與語(yǔ)言與C+語(yǔ)言語(yǔ)言的關(guān)系的關(guān)系 1.3.1C+對(duì)對(duì)C語(yǔ)言的改進(jìn)語(yǔ)言的改進(jìn) v增加了新的運(yùn)算符:增加了新的運(yùn)算符::,new,delete等;等; v改進(jìn)了類(lèi)型系統(tǒng),增加了安全性;改進(jìn)了類(lèi)型系統(tǒng),增加了安全性; v引進(jìn)了引用概念;引進(jìn)了引用概念; v允許函數(shù)重載,允許設(shè)置缺省參數(shù),提高了編允許函數(shù)重載,允許設(shè)置缺省參數(shù),提高了編 程的靈活性;程的靈活性; v引進(jìn)了內(nèi)聯(lián)函數(shù)
23、,提高了程序的效率;引進(jìn)了內(nèi)聯(lián)函數(shù),提高了程序的效率; v可以根據(jù)需要隨時(shí)對(duì)變量進(jìn)行說(shuō)明;可以根據(jù)需要隨時(shí)對(duì)變量進(jìn)行說(shuō)明; 1.3.2C+對(duì)面向?qū)ο蠓椒ǖ闹С謱?duì)面向?qū)ο蠓椒ǖ闹С?vC+支持?jǐn)?shù)據(jù)封裝(數(shù)據(jù)抽象)支持?jǐn)?shù)據(jù)封裝(數(shù)據(jù)抽象) C+中,中,類(lèi)是支持?jǐn)?shù)據(jù)封裝的工具,對(duì)象則類(lèi)是支持?jǐn)?shù)據(jù)封裝的工具,對(duì)象則 是數(shù)據(jù)封裝的實(shí)現(xiàn);是數(shù)據(jù)封裝的實(shí)現(xiàn); vC+中包含有私有、公有和保護(hù)成員中包含有私有、公有和保護(hù)成員 每個(gè)可能的消息對(duì)應(yīng)一個(gè)相應(yīng)的方法,方法每個(gè)可能的消息對(duì)應(yīng)一個(gè)相應(yīng)的方法,方法 通過(guò)函數(shù)來(lái)定義通過(guò)函數(shù)來(lái)定義; vC+中通過(guò)發(fā)送消息來(lái)處理對(duì)象中通過(guò)發(fā)送消息來(lái)處理對(duì)象 vC+中中允許友元破壞
24、封裝性允許友元破壞封裝性 vC+中允許函數(shù)名和運(yùn)算符重載中允許函數(shù)名和運(yùn)算符重載 vC+支持繼承性支持繼承性 vC+支持動(dòng)態(tài)聯(lián)編支持動(dòng)態(tài)聯(lián)編 vC+語(yǔ)言的字符集語(yǔ)言的字符集 v單詞及詞法規(guī)則單詞及詞法規(guī)則 v空白空白 1.4C+語(yǔ)言語(yǔ)言的詞法和詞法規(guī)則的詞法和詞法規(guī)則 1.4.1C+的字符集的字符集 v大小寫(xiě)的英文字母:大小寫(xiě)的英文字母:az,AZ v數(shù)字字符:數(shù)字字符:09 v特殊字符特殊字符 1.4.2單詞及詞法規(guī)則單詞及詞法規(guī)則 1、標(biāo)識(shí)符、標(biāo)識(shí)符 v組成規(guī)則:以字母或下劃線開(kāi)始,其后跟零個(gè)或組成規(guī)則:以字母或下劃線開(kāi)始,其后跟零個(gè)或 多個(gè)字母、數(shù)字或下劃線;多個(gè)字母、數(shù)字或下劃線; 不
25、能以數(shù)字開(kāi)始不能以數(shù)字開(kāi)始 正確標(biāo)識(shí)符:正確標(biāo)識(shí)符:Result, DoubleList, _first, first_ 錯(cuò)誤標(biāo)識(shí)符:錯(cuò)誤標(biāo)識(shí)符:1first v標(biāo)識(shí)符的長(zhǎng)度任意(受編譯器限制);標(biāo)識(shí)符的長(zhǎng)度任意(受編譯器限制); v區(qū)分字母的大小寫(xiě);區(qū)分字母的大小寫(xiě); v不能使用系統(tǒng)的保留字;不能使用系統(tǒng)的保留字; 例如:例如:ADD, Add, add 1.4.2單詞及詞法規(guī)則(續(xù))單詞及詞法規(guī)則(續(xù)) 2、關(guān)鍵字(保留字)、關(guān)鍵字(保留字) 表表1-1C+的關(guān)鍵字的關(guān)鍵字 1.4.2單詞及詞法規(guī)則(續(xù))單詞及詞法規(guī)則(續(xù)) 3、運(yùn)算符、運(yùn)算符 單目單目 雙目雙目 三目三目 運(yùn)算符運(yùn)算符
26、5、分隔符、分隔符 () , 分隔符分隔符 : 4、各種文字、各種文字 數(shù)字?jǐn)?shù)字 字符文字字符文字 串文字串文字 文字文字 布爾文字布爾文字 ; 1.4.3空白空白 一、空白一、空白 v包括:包括:空格、制表符、換行符空格、制表符、換行符 v功能:指示詞法記號(hào)的開(kāi)始和結(jié)束位置;功能:指示詞法記號(hào)的開(kāi)始和結(jié)束位置; 二、注釋二、注釋 v/*/ v/ 1.5C+程序的結(jié)構(gòu)程序的結(jié)構(gòu) 一、一、C+示范程序示范程序 #include void main() coutHello world! endl; 二、二、C+程序的組成程序的組成 由若干文件組成,每個(gè)文件有:由若干文件組成,每個(gè)文件有: 類(lèi)類(lèi) 函
27、數(shù)(其中函數(shù)(其中main為主函數(shù))為主函數(shù)) I/O流庫(kù),提供所流庫(kù),提供所 有的輸入輸出操作有的輸入輸出操作 cout:流類(lèi)對(duì)象流類(lèi)對(duì)象 :提取符提取符 提供鍵盤(pán)輸入;提供鍵盤(pán)輸入; 例如:例如: cinPlease input two integers:; cinab; endl:換行;換行; 1.6C+程序的編輯、編譯和運(yùn)行程序的編輯、編譯和運(yùn)行 一、編輯:源文件的擴(kuò)展名為一、編輯:源文件的擴(kuò)展名為.cpp 二、編譯二、編譯 1、預(yù)處理過(guò)程、預(yù)處理過(guò)程 詞法分析:?jiǎn)卧~詞法分析:?jiǎn)卧~ 語(yǔ)法分析:構(gòu)造程序的格式語(yǔ)法分析:構(gòu)造程序的格式 符號(hào)表:程序中的各種符號(hào)及其屬性符號(hào)表:程序中的各種符
28、號(hào)及其屬性 錯(cuò)誤處理程序:錯(cuò)誤處理程序: 生成目標(biāo)代碼:目標(biāo)文件擴(kuò)展名生成目標(biāo)代碼:目標(biāo)文件擴(kuò)展名.obj 2、編譯、編譯 過(guò)程過(guò)程 3、連接過(guò)程:可執(zhí)行文件擴(kuò)展名、連接過(guò)程:可執(zhí)行文件擴(kuò)展名.exe 三、運(yùn)行三、運(yùn)行 1.6C+程序的編輯、編譯和運(yùn)行程序的編輯、編譯和運(yùn)行(續(xù)續(xù)) 源程序源程序.cpp.cpp 目標(biāo)文件目標(biāo)文件.obj.obj 可執(zhí)行文可執(zhí)行文 件件.exe.exe 編譯器編譯器 連接器連接器 磁盤(pán)中的磁盤(pán)中的 #include#include文件文件 C+C+庫(kù)文件庫(kù)文件.LIB.LIB 第第2章數(shù)據(jù)類(lèi)型和表達(dá)式章數(shù)據(jù)類(lèi)型和表達(dá)式 v2.1基本數(shù)據(jù)類(lèi)型基本數(shù)據(jù)類(lèi)型 v2.2
29、常量和變量常量和變量 v2.3枚舉類(lèi)型枚舉類(lèi)型 v2.4數(shù)組類(lèi)型數(shù)組類(lèi)型 v2.5鍵盤(pán)輸入和屏幕輸出鍵盤(pán)輸入和屏幕輸出 v2.6指針和引用指針和引用 v2.7運(yùn)算符運(yùn)算符 v2.8表達(dá)式表達(dá)式 v2.9類(lèi)型定義類(lèi)型定義 2.1基本數(shù)據(jù)類(lèi)型基本數(shù)據(jù)類(lèi)型 一、基本數(shù)據(jù)類(lèi)型一、基本數(shù)據(jù)類(lèi)型 整型整型int 浮點(diǎn)型浮點(diǎn)型(實(shí)型實(shí)型) 字符型字符型char 基本數(shù)基本數(shù) 據(jù)類(lèi)型據(jù)類(lèi)型 邏輯型邏輯型bool 空值型空值型void 單精度浮點(diǎn)數(shù)單精度浮點(diǎn)數(shù)float 雙精度浮點(diǎn)數(shù)雙精度浮點(diǎn)數(shù) double 用于函數(shù)和指針用于函數(shù)和指針 2.1基本數(shù)據(jù)類(lèi)型(續(xù))基本數(shù)據(jù)類(lèi)型(續(xù)) 二、數(shù)據(jù)類(lèi)型修飾符二、數(shù)據(jù)類(lèi)
30、型修飾符 signed:有符號(hào)有符號(hào) unsigned:無(wú)符號(hào)無(wú)符號(hào) short:短型短型 long:長(zhǎng)型長(zhǎng)型 說(shuō)明:說(shuō)明: 3) longlong修飾符還適用于修飾符還適用于雙精度浮點(diǎn)數(shù)雙精度浮點(diǎn)數(shù); 2) 上述修飾符上述修飾符均均可用于可用于整型整型和和字符型字符型; 1) 類(lèi)型修飾符可以修飾類(lèi)型修飾符可以修飾除除voidvoid、boolbool類(lèi)型以外類(lèi)型以外 的其他類(lèi)型;的其他類(lèi)型; 2.1基本數(shù)據(jù)類(lèi)型(續(xù))基本數(shù)據(jù)類(lèi)型(續(xù)) 三、基本數(shù)據(jù)類(lèi)型列表三、基本數(shù)據(jù)類(lèi)型列表(P21) 表表2-1C+的基本數(shù)據(jù)類(lèi)型的基本數(shù)據(jù)類(lèi)型 2.1基本數(shù)據(jù)類(lèi)型(續(xù))基本數(shù)據(jù)類(lèi)型(續(xù)) 說(shuō)明:說(shuō)明: 1)
31、 表中的表中的int可以省略可以省略,即在,即在int之前有修飾符出之前有修飾符出 現(xiàn)時(shí),可以省略關(guān)鍵字現(xiàn)時(shí),可以省略關(guān)鍵字int; 2) 單精度類(lèi)型單精度類(lèi)型float、雙精度類(lèi)型、雙精度類(lèi)型double、長(zhǎng)精、長(zhǎng)精 度類(lèi)型度類(lèi)型long double統(tǒng)稱(chēng)浮點(diǎn)類(lèi)型;統(tǒng)稱(chēng)浮點(diǎn)類(lèi)型; 3) char類(lèi)型類(lèi)型和各種和各種int類(lèi)型統(tǒng)稱(chēng)整型類(lèi)型;類(lèi)型統(tǒng)稱(chēng)整型類(lèi)型;char 類(lèi)型類(lèi)型變量在內(nèi)存中以變量在內(nèi)存中以其其ASCII碼值碼值的形式的形式存儲(chǔ)存儲(chǔ); 4) 字寬(字節(jié))取決于操作系統(tǒng)和編譯器的實(shí)現(xiàn),字寬(字節(jié))取決于操作系統(tǒng)和編譯器的實(shí)現(xiàn), 可用可用sizeof驗(yàn)證;驗(yàn)證; v變量變量 v常量常量
32、 2.2常量和變量常量和變量 2.2.1變量變量 一、變量的三個(gè)基本要素一、變量的三個(gè)基本要素 名字名字 類(lèi)型類(lèi)型 值值 三要素三要素 數(shù)據(jù)值數(shù)據(jù)值 地址值地址值 int c; c=5; 內(nèi)存內(nèi)存 5 . c 地址地址 值值 1000H 二、變量的定義二、變量的定義 v可以在程序中可以在程序中隨時(shí)定義隨時(shí)定義變量,只要在該變量被變量,只要在該變量被 使用前使用前定義即可;定義即可; v定義格式:定義格式:; 例如:例如:int a,b,c;double x,y,z; 變量類(lèi)型變量類(lèi)型 變量名變量名 數(shù)據(jù)值數(shù)據(jù)值 地址值地址值 2.2.1變量(續(xù))變量(續(xù)) v同一程序塊內(nèi)同一程序塊內(nèi)不可以不可
33、以定義定義同名變量同名變量; v初始值初始值 變量定義變量定義時(shí)可賦時(shí)可賦初始值初始值; 聲明格式:聲明格式: 數(shù)據(jù)類(lèi)型數(shù)據(jù)類(lèi)型 標(biāo)識(shí)符標(biāo)識(shí)符1=初始值初始值1, ,標(biāo)識(shí)符標(biāo)識(shí)符n=初始值初始值n; 數(shù)據(jù)類(lèi)型數(shù)據(jù)類(lèi)型 標(biāo)識(shí)符標(biāo)識(shí)符1(初始值初始值1), ,標(biāo)識(shí)符標(biāo)識(shí)符n(初始值初始值n); 例如:例如:double price=15.5;int size(100); 未被初始化未被初始化的變量的值或者是默認(rèn)值,或者是的變量的值或者是默認(rèn)值,或者是 無(wú)效值,無(wú)效值,由變量類(lèi)型決定由變量類(lèi)型決定; v變量可被賦值,由變量名標(biāo)識(shí);變量可被賦值,由變量名標(biāo)識(shí); 2.2.2常量常量 一、整型常量(無(wú)小數(shù)
34、部分)一、整型常量(無(wú)小數(shù)部分) 1、表示方法、表示方法 v十進(jìn)制十進(jìn)制 v八進(jìn)制八進(jìn)制 v十六進(jìn)制十六進(jìn)制 2、十進(jìn)制表示、十進(jìn)制表示 v由由09的數(shù)字組成的數(shù)字組成 v不不能以能以0開(kāi)始開(kāi)始 v無(wú)前綴無(wú)前綴 v例:例:132, -345 3、八進(jìn)制表示、八進(jìn)制表示 v由由0 7的數(shù)字組成的數(shù)字組成 v以以0為前綴為前綴 v例:例:010, -0536 4、十六進(jìn)制表示、十六進(jìn)制表示 v由由09的數(shù)字及的數(shù)字及A F的字母的字母(大小寫(xiě)均可大小寫(xiě)均可) 組成組成 v以以0 x或或0X為前綴為前綴 v例:例:0 x7A, -0X3de 2.2.2常量(續(xù))常量(續(xù)) 5、說(shuō)明:、說(shuō)明: 1)
35、長(zhǎng)整型長(zhǎng)整型用用L(或(或l)做)做后綴后綴表示。例如:表示。例如: 32765L,793l; 2) 無(wú)符號(hào)型無(wú)符號(hào)型用用U(或(或u)做)做后綴后綴表示。例如:表示。例如: 4352U,3100u; 3) unsigned long型型用后綴用后綴U(或(或u)和)和L(或(或l) 一起表示,一起表示,L與與U的先后順序無(wú)關(guān)。例如:的先后順序無(wú)關(guān)。例如: 49321ul,37825LU,41152Lu; 2.2.2常量(續(xù))常量(續(xù)) 二、浮點(diǎn)型常量二、浮點(diǎn)型常量 v由整數(shù)部分和小數(shù)部分構(gòu)成;由整數(shù)部分和小數(shù)部分構(gòu)成; v只有十進(jìn)制表示只有十進(jìn)制表示; v一般表示形式(小數(shù)表示形式):一般表
36、示形式(小數(shù)表示形式): 整數(shù)部分與小數(shù)部分可以省去一部分,但整數(shù)部分與小數(shù)部分可以省去一部分,但 不能全部省去;不能全部省去; 例如:例如:5.,.25,4.07 2.2.2常量(續(xù))常量(續(xù)) v科學(xué)表示形式:科學(xué)表示形式: 在小數(shù)表示法后面加在小數(shù)表示法后面加E(或(或e)表示指數(shù))表示指數(shù); 例如:例如:23.5E6,.032E-5,.3e10 指數(shù)部分指數(shù)部分可正可負(fù),但可正可負(fù),但必須為整數(shù)必須為整數(shù); v浮點(diǎn)常量的浮點(diǎn)常量的缺省數(shù)據(jù)類(lèi)型缺省數(shù)據(jù)類(lèi)型為為double型;型; v后綴后綴F(或(或f)表示)表示float類(lèi)型;類(lèi)型; v后綴后綴l(或(或l)表示)表示long dou
37、ble類(lèi)型;類(lèi)型; 2.2.2常量(續(xù))常量(續(xù)) 三、字符常量三、字符常量 v由一對(duì)由一對(duì)單引號(hào)單引號(hào)括起的括起的一個(gè)字符一個(gè)字符表示;表示; v其其值值為所括起字符在為所括起字符在ASCII表中的表中的編碼編碼; v所括起字符的表示方法:所括起字符的表示方法: 1、圖形表示法、圖形表示法 該方法適用于該方法適用于有圖形符號(hào)有圖形符號(hào)的的可打印字符可打印字符; 例如例如:A,a,* 2、轉(zhuǎn)義序列表示法、轉(zhuǎn)義序列表示法 該方法適用于該方法適用于所有字符所有字符,尤其是,尤其是無(wú)圖形符號(hào)無(wú)圖形符號(hào) 的的不可打印字符不可打印字符; 2.2.2常量(續(xù))常量(續(xù)) (1)轉(zhuǎn)義序列表示方法:)轉(zhuǎn)義序列
38、表示方法:以反斜線以反斜線()開(kāi)頭開(kāi)頭,后跟后跟 字符的字符的ASCII碼值碼值; (2)八進(jìn)制表)八進(jìn)制表 示:示:ddd; 例如:例如:101 (3)十六進(jìn)制)十六進(jìn)制 表示:表示:xhh; 例如:例如:x41 表表2-2C+中常用轉(zhuǎn)義序列符中常用轉(zhuǎn)義序列符 2.2.2常量(續(xù))常量(續(xù)) 四、布爾常量四、布爾常量 有兩個(gè)值:有兩個(gè)值:true和和false; 五、字符串常量(串常量,字符串)五、字符串常量(串常量,字符串) v一對(duì)一對(duì)雙引號(hào)雙引號(hào)括起的括起的字符序列字符序列,字符序列可以,字符序列可以 包含包含空格空格、轉(zhuǎn)義序列轉(zhuǎn)義序列或或任何其他字符任何其他字符,這些,這些 字符不一定
39、是字符不一定是C+字符集中的字符,只要字符集中的字符,只要C+ 編譯器支持即可;編譯器支持即可; 例如:例如:This is a string; v字符串常量與字符常量的區(qū)別:字符串常量與字符常量的區(qū)別: 2.2.2常量(續(xù))常量(續(xù)) v由一個(gè)由一個(gè)字符型變量字符型變量存存 放放 v由由一維數(shù)組一維數(shù)組存放存放 字符常量字符常量字符串常量字符串常量 v用用單引號(hào)單引號(hào)括起括起v用用雙引號(hào)雙引號(hào)括起括起 v字符串有一個(gè)字符串有一個(gè)結(jié)束符結(jié)束符, 結(jié)束符用結(jié)束符用0表示表示 v字符常量字符常量a在內(nèi)存中在內(nèi)存中 占用占用一個(gè)字節(jié)一個(gè)字節(jié) v字符串常量字符串常量a在內(nèi)在內(nèi) 存中占用存中占用兩個(gè)字節(jié)
40、兩個(gè)字節(jié) v可進(jìn)行加、減法運(yùn)算可進(jìn)行加、減法運(yùn)算v可進(jìn)行連接、拷貝運(yùn)算可進(jìn)行連接、拷貝運(yùn)算 2.2.2常量(續(xù))常量(續(xù)) 六、符號(hào)常量六、符號(hào)常量 v用來(lái)用來(lái)表示表示C+中的常量中的常量,即用一個(gè)與常量相關(guān),即用一個(gè)與常量相關(guān) 的標(biāo)識(shí)符來(lái)替代常量的標(biāo)識(shí)符來(lái)替代常量; v優(yōu)點(diǎn):優(yōu)點(diǎn):增加可讀性,增強(qiáng)可維護(hù)性;增加可讀性,增強(qiáng)可維護(hù)性; 例如:例如:PI表示表示3.1415926 v定義方法:使用定義方法:使用類(lèi)型說(shuō)明符類(lèi)型說(shuō)明符const; 例如:例如:const int size=80; v定義的符號(hào)常量定義的符號(hào)常量必須初始化必須初始化; v一個(gè)符號(hào)常量可看作是一個(gè)一個(gè)符號(hào)常量可看作是一個(gè)
41、只讀變量只讀變量,由,由 const定義的常量的定義的常量的值不可以改變值不可以改變; Line1:#include Line2:const double pi=3.1415; Line3:const double r; Line4:void main() Line5: Line6: double perimeter,area; Line7: perimeter=2*pi*r; Line8: pi=3.14; Line9: area=pi*r*r; Line10: coutperimeter, areaendl; Line11: const double r=3.2;錯(cuò)誤錯(cuò)誤 錯(cuò)誤,不能修改錯(cuò)
42、誤,不能修改pi的值的值 2.2.2常量(續(xù))常量(續(xù)) 2.3枚舉類(lèi)型枚舉類(lèi)型 枚舉類(lèi)型是若干個(gè)有名字的整型常量的集枚舉類(lèi)型是若干個(gè)有名字的整型常量的集 合合; 2.3.1枚舉聲明和枚舉變量枚舉聲明和枚舉變量 一、枚舉聲明一、枚舉聲明 venum ; v由若干個(gè)枚舉符組成,多個(gè)枚舉符由若干個(gè)枚舉符組成,多個(gè)枚舉符 之間用逗號(hào)分隔;之間用逗號(hào)分隔; v枚舉符是用標(biāo)識(shí)符表示的整型常量,又稱(chēng)枚枚舉符是用標(biāo)識(shí)符表示的整型常量,又稱(chēng)枚 舉常量;舉常量; v枚舉常量的值枚舉常量的值默認(rèn)為默認(rèn)為最前邊的一個(gè)為最前邊的一個(gè)為0,其,其 后的值后的值依次加依次加1; v枚舉常量的值也枚舉常量的值也可顯式定義可
43、顯式定義,未顯式定義的,未顯式定義的 則在前一個(gè)值的基礎(chǔ)上加則在前一個(gè)值的基礎(chǔ)上加1; 2.3.1枚舉聲明和枚舉變量(續(xù)枚舉聲明和枚舉變量(續(xù)) 二、枚舉變量二、枚舉變量 v例如:例如: enum day Sun,Mon,Tue,Wed,Thu,Fri,Sat; enum day Sun=7,Mon=1, Tue,Wed,Thu,Fri,Sat; venum ; v多個(gè)枚舉變量之間用逗號(hào)分隔;多個(gè)枚舉變量之間用逗號(hào)分隔; v例如:例如: enum day d1,d2,d3; enum day Sun,Mon,Tue,Wed,Thu,Fri,Sat d1,d2,d3; v枚舉常量的枚舉常量的值不
44、一定互不相同值不一定互不相同; 2.3.2枚舉變量的值枚舉變量的值 v其值是該枚舉變量所屬的枚舉聲明的枚舉表的某其值是該枚舉變量所屬的枚舉聲明的枚舉表的某 一個(gè)枚舉符;一個(gè)枚舉符; v利用枚舉符所表示的整型值給枚舉變量賦值時(shí),利用枚舉符所表示的整型值給枚舉變量賦值時(shí), 需要進(jìn)行類(lèi)型強(qiáng)制;需要進(jìn)行類(lèi)型強(qiáng)制; v例如:例如: d1=Sun; d2=Sat; d3=(enum day)4; 2.4數(shù)組類(lèi)型數(shù)組類(lèi)型 數(shù)目固定、類(lèi)型相同的若干個(gè)變量的有序數(shù)目固定、類(lèi)型相同的若干個(gè)變量的有序 集合;集合; 2.4.1數(shù)組的定義數(shù)組的定義 1、格式、格式 2; ; 說(shuō)明:說(shuō)明: v方括號(hào)方括號(hào)( )表示數(shù)組
45、的維;表示數(shù)組的維; v某某維的大小維的大小必須是必須是大于大于0的的常量表達(dá)式常量表達(dá)式; 2、示例、示例 vint a3; vchar b35; vconst int size=80; vint msize; 2.4.2數(shù)組的賦值數(shù)組的賦值 1、數(shù)組元素的表示、數(shù)組元素的表示 v下標(biāo)表示:下標(biāo)表示: 2; ; 說(shuō)明:說(shuō)明: 下標(biāo)從下標(biāo)從0開(kāi)始開(kāi)始; 各個(gè)元素在內(nèi)存中按其各個(gè)元素在內(nèi)存中按其下標(biāo)的升序下標(biāo)的升序順序順序連續(xù)連續(xù)存存 放;放; v指針表示:指針表示: 2.4.2數(shù)組的賦值(續(xù))數(shù)組的賦值(續(xù)) 2、數(shù)組元素賦初值、數(shù)組元素賦初值 v利用初始值表(利用初始值表(由一對(duì)花括號(hào)括起來(lái)
46、的若干數(shù)由一對(duì)花括號(hào)括起來(lái)的若干數(shù) 據(jù)項(xiàng)組成)實(shí)現(xiàn);據(jù)項(xiàng)組成)實(shí)現(xiàn); v初始值表中數(shù)據(jù)項(xiàng)的個(gè)數(shù)要小于等于數(shù)組元素初始值表中數(shù)據(jù)項(xiàng)的個(gè)數(shù)要小于等于數(shù)組元素 的個(gè)數(shù)的個(gè)數(shù); v例如:例如:int a5=1,2,3,4,5; int a4=5,4; int b23=1,2,3,4,5,6; int b23=1,2,3,4,5,6; int c232=5,4,3,2,1,0; 3、數(shù)組元素的賦值、數(shù)組元素的賦值 例如:例如:int m3;m0=5;m1=3;m2=1; 2.4.3字符數(shù)組字符數(shù)組 說(shuō)明:說(shuō)明: v字符數(shù)組是指數(shù)組元素是字符數(shù)組是指數(shù)組元素是char類(lèi)型類(lèi)型的數(shù)組的數(shù)組; v注意注意字符
47、常量字符常量、字符數(shù)組字符數(shù)組與與字符串常量字符串常量的區(qū)別;的區(qū)別; 例如:例如: char s14=a, b, c, d;字符數(shù)組字符數(shù)組 char s25=a, b, c, d, 0; 字符數(shù)組字符數(shù)組 (字符串常量字符串常量) 等價(jià)于等價(jià)于 char s25=abcd; char s35=abcde; char s3 =abcde; int a,b cinab; 運(yùn)行時(shí)從鍵盤(pán)輸入:運(yùn)行時(shí)從鍵盤(pán)輸入: 12 34 2.5鍵盤(pán)輸入和屏幕輸出鍵盤(pán)輸入和屏幕輸出 一、鍵盤(pán)輸入一、鍵盤(pán)輸入 使用標(biāo)準(zhǔn)輸入流對(duì)象使用標(biāo)準(zhǔn)輸入流對(duì)象cin和提取運(yùn)算符和提取運(yùn)算符 鍵盤(pán)輸入和屏幕輸出都使用鍵盤(pán)輸入和屏幕
48、輸出都使用 include 二、屏幕輸出二、屏幕輸出 2.5鍵盤(pán)輸入和屏幕輸出鍵盤(pán)輸入和屏幕輸出(續(xù)續(xù)) 使用標(biāo)準(zhǔn)輸出流對(duì)象和插入運(yùn)算符使用標(biāo)準(zhǔn)輸出流對(duì)象和插入運(yùn)算符 int a=12; double b=12.34 cout“ab的值的值 為:為:”a,bendl; 2.5鍵盤(pán)輸入和屏幕輸出鍵盤(pán)輸入和屏幕輸出(續(xù)續(xù)) #include void main() int a,b;double m,n;char c,s20; coutab; coutmn; coutcs; couta,bendl; coutm,nendl; coutc,sendl; 例:對(duì)不同類(lèi)型數(shù)據(jù)的輸入和輸出例:對(duì)不同類(lèi)型數(shù)據(jù)
49、的輸入和輸出 v指針指針 v指針和數(shù)組指針和數(shù)組 v引用引用 2.6指針和引用指針和引用 2.6.1指針指針 1、什么是指針、什么是指針 v指針是用來(lái)存放某個(gè)變量的地址值的一種變量;指針是用來(lái)存放某個(gè)變量的地址值的一種變量; v指針的類(lèi)型是它所指向指針的類(lèi)型是它所指向 變量的類(lèi)型;變量的類(lèi)型; v指針本身數(shù)據(jù)值的類(lèi)型是指針本身數(shù)據(jù)值的類(lèi)型是 unsigned long int型;型; v例如:例如: int a(5); int *p= 內(nèi)存內(nèi)存 1000H 5 . a 地址值地址值 1000H 3000H p 2.6.1指針(續(xù))指針(續(xù)) 2、如何定義指針、如何定義指針 v例如:例如: in
50、t *pi; char (*pa)3; /數(shù)組指針數(shù)組指針 float *pl;int (*pf)(); /函數(shù)指針函數(shù)指針 char *pc; int *pp; * * , 1, * * ,2,; ; 3、指針的賦值(內(nèi)存地址值)、指針的賦值(內(nèi)存地址值) v指針必須被指針必須被賦值后賦值后才可才可使用使用; v一般變量、數(shù)組元素、結(jié)構(gòu)成員的一般變量、數(shù)組元素、結(jié)構(gòu)成員的地址值地址值為為變變 量名前加量名前加運(yùn)算符運(yùn)算符 double sin(double x); int *p= double (*pf)(double x); int c10,*p=c;pf=sin; 4、指針的運(yùn)算、指針的
51、運(yùn)算 v賦值運(yùn)算。例如:賦值運(yùn)算。例如:int a,*p=q=p; v一個(gè)指針可以加上或減去一個(gè)整數(shù)值;一個(gè)指針可以加上或減去一個(gè)整數(shù)值; v在一定條件下在一定條件下(指向同一數(shù)組的不同元素指向同一數(shù)組的不同元素),兩,兩 個(gè)指針可以相減;個(gè)指針可以相減; v在一定條件下在一定條件下(指向同一數(shù)組的不同元素指向同一數(shù)組的不同元素),兩,兩 個(gè)指針可以比較;個(gè)指針可以比較; 2.6.2指針和數(shù)組指針和數(shù)組 1、C+中中指針與數(shù)組的關(guān)系指針與數(shù)組的關(guān)系 vC+通過(guò)通過(guò)指針訪問(wèn)數(shù)組中的每個(gè)元素;指針訪問(wèn)數(shù)組中的每個(gè)元素; v在運(yùn)算表達(dá)式中,一個(gè)標(biāo)識(shí)在運(yùn)算表達(dá)式中,一個(gè)標(biāo)識(shí)數(shù)組數(shù)組對(duì)象的操作數(shù)對(duì)象的操
52、作數(shù) 在運(yùn)算表達(dá)式中被在運(yùn)算表達(dá)式中被自動(dòng)轉(zhuǎn)換為一個(gè)指向數(shù)組對(duì)自動(dòng)轉(zhuǎn)換為一個(gè)指向數(shù)組對(duì) 象的第一個(gè)元素對(duì)象的指針值象的第一個(gè)元素對(duì)象的指針值。 2、一維數(shù)組的指針表示法、一維數(shù)組的指針表示法 vC+中規(guī)定:任何一個(gè)數(shù)組的名字是一個(gè)常量中規(guī)定:任何一個(gè)數(shù)組的名字是一個(gè)常量 指針,其值是該數(shù)組的首元素的地址值指針,其值是該數(shù)組的首元素的地址值; v例如:例如:int a5; 數(shù)組表示法:數(shù)組表示法:ai,i=0,1,2,3,4 指針表示法:指針表示法:*(a+i) a與與 v數(shù)組表示法:數(shù)組表示法:biji=0,1; j=0,1,2,3,4 v指針表示法:指針表示法: *(*(b+i)+j) *(
53、bi+j) (*(b+i)j ( int i,j; i=a0+a4; j=*(a+2)+*(a+4); coutiendljendl; 輸輸 出出 6 4 4a1 5a0 3a2 2a3 1a4 a a+2 a+4 2.6.2指針和數(shù)組(續(xù))指針和數(shù)組(續(xù)) 例例2.2:分析下列程序的輸出結(jié)果。:分析下列程序的輸出結(jié)果。 #include void main() static char s1 =abcde, s25=m, n, p, q, 0; char *ps=s1; couts1 or s2endl; couts21s22s13s14endl; cout*ps*(ps+2)*(ps+4)*
54、ps+2endl; 輸輸 出出 abcde or mnpq npde ace99 a的ASCII碼值 為0 x61,即97 2.6.2指針和數(shù)組(續(xù))指針和數(shù)組(續(xù)) 例例2.3:分析下列程序的輸出結(jié)果。:分析下列程序的輸出結(jié)果。 #include void main() static char t35=abcd, efgh, ijkl, mnop, qrst, uvwx; coutt123*(t12+3)*(*(*(t+1)+2)+3) *(*(t1+2)+3)endl; cout*tt*(*(t+1)+1)tt02 t*t+1endl; 輸輸 出出 xxxx abcdqrstijklbcd
55、 2.6.3引用引用 v對(duì)對(duì)象對(duì)對(duì)象存儲(chǔ)地址的抽象存儲(chǔ)地址的抽象,但引用不是變量,但引用不是變量 或?qū)ο螅驅(qū)ο?,它不占存?chǔ)空間不占存儲(chǔ)空間; v引用有類(lèi)型引用有類(lèi)型; v引用是引用是變量的別名變量的別名; 1、定義格式、定義格式 ); 或或 ; 2、初始化與賦值、初始化與賦值 v定義引用時(shí)必須初始化定義引用時(shí)必須初始化; v可以將一個(gè)引用可以將一個(gè)引用賦給某個(gè)變量賦給某個(gè)變量; v引用可引用可被賦值被賦值; 2.6.3引用(續(xù))引用(續(xù)) 示例:示例: int a=3; int int n=m; int *p= m=m+5; 3a8 p m 3n 定義引用并初始化定義引用并初始化 將引用賦
56、值給變量將引用賦值給變量 a=8,對(duì)引用的操作就,對(duì)引用的操作就 是對(duì)被引用者的操作是對(duì)被引用者的操作 3、引用的功能、引用的功能 v功能:用做函數(shù)的參數(shù)或函數(shù)的返回值;功能:用做函數(shù)的參數(shù)或函數(shù)的返回值; v注意:函數(shù)注意:函數(shù)不能返回對(duì)局部對(duì)象的引用不能返回對(duì)局部對(duì)象的引用; 2.6.3引用(續(xù))引用(續(xù)) 示例:示例: int return r; 錯(cuò),錯(cuò),r是局部對(duì)象是局部對(duì)象 4、指針與引用的區(qū)別、指針與引用的區(qū)別(教材教材P159有錯(cuò)有錯(cuò)) v指針通過(guò)地址間接訪問(wèn)某個(gè)變量,引用通過(guò)別指針通過(guò)地址間接訪問(wèn)某個(gè)變量,引用通過(guò)別 名直接訪問(wèn)某個(gè)變量;名直接訪問(wèn)某個(gè)變量; v引用必須初始化,
57、一旦被初始化后不得再作為引用必須初始化,一旦被初始化后不得再作為 其他變量的別名;其他變量的別名; 正確:正確:int 2.6.3引用(續(xù))引用(續(xù)) 例例2.4:分析下列程序的輸出結(jié)果。:分析下列程序的輸出結(jié)果。 #include void main() int val(5); int refv=refv+5; coutvalendl; int *p= cout*ptval1endl; 輸輸 出出 10 1010 2.6.3引用(續(xù))引用(續(xù)) 例例2.5:分析下列程序的輸出結(jié)果。:分析下列程序的輸出結(jié)果。 #include int return r; void main() int a=1
58、,3,5,7,9; f(2,a)=55; for(i=0;i5;i+) coutai、=、=、=、!= v前四種優(yōu)先級(jí)高于后兩種;前四種優(yōu)先級(jí)高于后兩種; 2.7.3邏輯運(yùn)算符邏輯運(yùn)算符 v雙目運(yùn)算符:雙目運(yùn)算符: ); v功能功能:返回其后的類(lèi)型說(shuō)明符或表達(dá)式所表示:返回其后的類(lèi)型說(shuō)明符或表達(dá)式所表示 的數(shù)在內(nèi)存中所占的字節(jié)的數(shù)在內(nèi)存中所占的字節(jié); 4、單目運(yùn)算符、單目運(yùn)算符); v 格式:格式: ( ();); 或或 ( ) ; 2.7.6其他運(yùn)算符(續(xù))其他運(yùn)算符(續(xù)) v強(qiáng)制類(lèi)型轉(zhuǎn)換可將高類(lèi)型轉(zhuǎn)換為低類(lèi)型,是一強(qiáng)制類(lèi)型轉(zhuǎn)換可將高類(lèi)型轉(zhuǎn)換為低類(lèi)型,是一 種種不安全不安全的轉(zhuǎn)換的轉(zhuǎn)換; 示
59、例:示例: double f(3.85); int h; h=int(f); v該轉(zhuǎn)換是該轉(zhuǎn)換是暫時(shí)的暫時(shí)的,一次性的一次性的; v 將低類(lèi)型轉(zhuǎn)換為高類(lèi)型,不影響數(shù)據(jù)精度將低類(lèi)型轉(zhuǎn)換為高類(lèi)型,不影響數(shù)據(jù)精度 示例:示例: int a(3),m; double b; b=3.56+double(a); m=a+5; 2.7.7運(yùn)算符的優(yōu)先級(jí)和結(jié)合性運(yùn)算符的優(yōu)先級(jí)和結(jié)合性 vP48,表,表3.1 v表達(dá)式的種類(lèi)表達(dá)式的種類(lèi) v表達(dá)式的值和類(lèi)型表達(dá)式的值和類(lèi)型 v表達(dá)式中的類(lèi)型轉(zhuǎn)換表達(dá)式中的類(lèi)型轉(zhuǎn)換 2.8表達(dá)式表達(dá)式 2.8.1表達(dá)式的種類(lèi)表達(dá)式的種類(lèi) v由運(yùn)算符和操作數(shù)組成的式子;由運(yùn)算符和操作
60、數(shù)組成的式子; v常見(jiàn)的表達(dá)式常見(jiàn)的表達(dá)式 算術(shù)表達(dá)式;算術(shù)表達(dá)式; 邏輯表達(dá)式;邏輯表達(dá)式; 關(guān)系表達(dá)式;關(guān)系表達(dá)式; 賦值表達(dá)式;賦值表達(dá)式; 條件表達(dá)式;條件表達(dá)式; 逗號(hào)表達(dá)式;逗號(hào)表達(dá)式; 2.8.1表達(dá)式的種類(lèi)(續(xù))表達(dá)式的種類(lèi)(續(xù)) v注意事項(xiàng):注意事項(xiàng): 連續(xù)的兩個(gè)運(yùn)算符之間用空格分隔;連續(xù)的兩個(gè)運(yùn)算符之間用空格分隔; 可用括號(hào)來(lái)改變運(yùn)算符優(yōu)先級(jí);可用括號(hào)來(lái)改變運(yùn)算符優(yōu)先級(jí); 過(guò)長(zhǎng)的表達(dá)式可分成幾個(gè)表達(dá)式;過(guò)長(zhǎng)的表達(dá)式可分成幾個(gè)表達(dá)式; 2.8.2表達(dá)式的值和類(lèi)型表達(dá)式的值和類(lèi)型 一、確定表達(dá)式的值一、確定表達(dá)式的值 二、表達(dá)式求值方法與確定類(lèi)型的方法二、表達(dá)式求值方法與確定類(lèi)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年結(jié)構(gòu)化布線系統(tǒng)的檢測(cè)設(shè)備合作協(xié)議書(shū)
- 四川省瀘州外國(guó)語(yǔ)學(xué)校2025屆高三考前熱身化學(xué)試卷含解析
- 2025年摻鉺光纖放大器項(xiàng)目合作計(jì)劃書(shū)
- 農(nóng)用機(jī)械安全管理要求
- 三年級(jí)數(shù)學(xué)計(jì)算題專(zhuān)項(xiàng)練習(xí)匯編及答案
- 2025年航天器數(shù)管系統(tǒng)項(xiàng)目合作計(jì)劃書(shū)
- 如何制定護(hù)理診斷
- 2025年圖像存儲(chǔ)與通訊系統(tǒng)(PACS)合作協(xié)議書(shū)
- 陜西藝術(shù)職業(yè)學(xué)院《線性代數(shù)B》2023-2024學(xué)年第二學(xué)期期末試卷
- 陜西警官職業(yè)學(xué)院《大數(shù)據(jù)與財(cái)務(wù)分析》2023-2024學(xué)年第二學(xué)期期末試卷
- 永川城市綠地系統(tǒng)分析
- 2021年班主任工作案例班級(jí)小團(tuán)體4篇
- GB/T 2080-2007帶圓角沉孔固定的硬質(zhì)合金可轉(zhuǎn)位刀片尺寸
- IEC61400-1風(fēng)力發(fā)電機(jī)設(shè)計(jì)要求中文版
- 特基拉烈酒(Tequila)課件
- Sigma-Delta-ADC講稿教學(xué)講解課件
- 高考作文寫(xiě)作備考:“磨礪中提升自我”導(dǎo)寫(xiě)及范文
- 部編版小學(xué)二年級(jí)語(yǔ)文下冊(cè)《口語(yǔ)交際圖書(shū)借閱公約》教學(xué)反思(三篇)
- 卵巢癌根治術(shù)手術(shù)配合
- PPT模板 上海外國(guó)語(yǔ)大學(xué)
- 倉(cāng)庫(kù)績(jī)效考核制度規(guī)定辦法
評(píng)論
0/150
提交評(píng)論