2017-C++期末總復(fù)習(xí)
《面向?qū)ο蟪绦蛟O(shè)計(jì)及C++》總復(fù)習(xí)
第1章:面向?qū)ο蟪绦蛟O(shè)計(jì)及C++語言概述
1、基本概念:
(1)面向?qū)ο蟮娜齻€(gè)主要特性
(2)C++源程序的擴(kuò)展名:.cpp;編譯后的目標(biāo)文件的擴(kuò)展名:.obj;鏈接后的可執(zhí)行文件的擴(kuò)展名為:.exe;程序總是從main()函數(shù)開始運(yùn)行。
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
第2章:C++語言對C語言的改進(jìn)及擴(kuò)展
1、基本概念:
(1)新的I/O流對象:cin、cout。注意它們默認(rèn)的輸入、輸出格式!
(2)使用作用域運(yùn)算符(::)能在局部變量作用域內(nèi)訪問同名全局變量。(課后練習(xí)四-3)
(3)new和delete動(dòng)態(tài)分配和釋放內(nèi)存
(4)帶默認(rèn)參數(shù)值的函數(shù)
(4)內(nèi)聯(lián)函數(shù)(inline)的概念
(5)C++中的異常處理:try(檢查異常)、throw(拋出異常)、catch(捕捉異常)。
?
2、知識重點(diǎn):
(1)?const修飾符與指針
區(qū)別下列定義:
const?char * name=”chen”??//指向常量的指針
char * const?name=”chen”??//常指針
const?char * const?name=”chen”??//指向常量的常指針
(課后練習(xí)?一-5)
(2)?函數(shù)重載
特征:函數(shù)名相同,函數(shù)參數(shù)類型或個(gè)數(shù)(參數(shù)列表)不同。與函數(shù)返回類型無關(guān)。
練習(xí):下列重載函數(shù)定義錯(cuò)誤的是???????????。
A. int print( int x); ???????????B. int disp(Myclass A);
??void print(float x); ????????????char * disp(Myclass A);
C. int show( int x); ????????????D. int view(int x , int y);
??int show( char *s); ?????????????int view( int x);
?
(3)?引用(變量的別名)
重點(diǎn):引用的定義
引用、指針作為函數(shù)參數(shù)。
練習(xí):
#include <iostream.h>
void s(int *a, ?int &b)
{ ?int *t=a;
??????*a=b;
??????b=*t; ???
}
void main()
{ ?int x=500, y=1000;
???s(&x, y);
???cout<<x<<”??“<<y<<endl; ?}
該程序運(yùn)行輸出是:??????????????。
?
(課后練習(xí)四-6)
?
?
?
?
?
?
第3章:類與對象
1、基本概念:
(1)?類成員的訪問屬性有幾種。
(2)?構(gòu)造函數(shù)、析構(gòu)函數(shù)的定義和特點(diǎn)。
(3)?this指針指向當(dāng)前對象。
(4)?對象作為函數(shù)參數(shù)的三種形式:傳值(對象變量)、傳地址(對象指針)、傳名(引用)。
?
2、知識重點(diǎn):
(1)?構(gòu)造函數(shù)與拷貝構(gòu)造函數(shù)的使用
系統(tǒng)默認(rèn)構(gòu)造函數(shù)(無參數(shù))
拷貝構(gòu)造函數(shù)(參數(shù)通常為對象的常引用)
練習(xí)1:以下語句調(diào)用哪種構(gòu)造函數(shù):
class A; ?A a; ?//調(diào)用不帶參數(shù)的構(gòu)造函數(shù)
class A; ?A *p=new A; //調(diào)用不帶參數(shù)的構(gòu)造函數(shù)
class A; ?A a, b=a; ?//a調(diào)用不帶參數(shù)的構(gòu)造函數(shù)
//b調(diào)用拷貝構(gòu)造函數(shù)
class A; A a, b(a); ??//同上
class A; A a,b; b=a; ?//?
class A; void fun(A x); A a; fun(a);
//對象作為函數(shù)參數(shù)或返回值時(shí)會(huì)調(diào)用拷貝構(gòu)造函數(shù)
(2)?類的定義與使用 ???
(例3.11、 教材例3.13、課后練習(xí)四-1,5)
(3)?對象數(shù)組與指針的使用 ??(教材例3.15)
(4)?友元(友元函數(shù)、友元成員、友元類)
第4章:類中數(shù)據(jù)的共享與保護(hù)
知識重點(diǎn):
(1)??靜態(tài)static數(shù)據(jù)成員
?????屬于類的范疇,為同類對象所共享。
????(課后練習(xí)三-1,2)
?
第5章:類與類之間的關(guān)系
內(nèi)容1:類的組合
(1)?類對象作為成員(構(gòu)造函數(shù)調(diào)用次序)
?
內(nèi)容2:類的繼承與派生
1、基本概念:
(1)?基類成員在派生類中的訪問屬性
基類的private成員不能被繼承
(2)?賦值兼容規(guī)則
基類對象=派生類對象;
基類對象指針=派生類對象地址;
基類對象引用=派生類對象;//初始化
基類對象指針=派生類對象指針;
(3)?繼承的理解(單一繼承、多重繼承、虛基類等)
?
2、知識重點(diǎn):
(1)?派生類的定義
(2)?構(gòu)造函數(shù)(析構(gòu)函數(shù))的執(zhí)行次序
單一繼承、多重繼承、帶虛基類的多重繼承
虛基類->非虛基類->對象成員->派生類自身
(教材例5.8,課后練習(xí)四-1 ,2)
(3)?繼承中的同名問題
單繼承中的同名問題(同名覆蓋)
使用成員名限定法:基類名::
多重繼承中的同名問題(二義性)
使用成員名限定法:類名::?
使用虛基類:virtual
??????(實(shí)驗(yàn)二-1)
?
?
?
?
?
?
?
?
?
?
練習(xí)1:
#include <iostream.h>
class A
{ public:
??int x;
??A(int i) { x=i;}
??void Show() { cout<<”A: x=”<<x<<endl; }
};
class B
{ public:
???int y;
???B(int i) { y=i; }
???void Show() { cout<<”B: y=”<<y<<endl; }
};
class C: public A, public B
{ public:
???int y;
???C(int a, int b, int c):A(a+1), B(b-1) { y=c; }
???void Show() { cout<<”C: y=”<<y<<endl; }
};
void main()
{ ?C c1(400, 500, 600); ??c1.y=200;
???c1.Show();
???c1.A::Show(); ???c1.B::Show(); ???
}
該程序運(yùn)行輸出是:?????????
?
第6章:多態(tài)性
1、基本概念:
(1)?兩種多態(tài)性
靜態(tài)多態(tài)性,編譯時(shí)多態(tài)性:函數(shù)(運(yùn)算符)重載。
動(dòng)態(tài)多態(tài)性,運(yùn)行時(shí)多態(tài)性:繼承、虛函數(shù)、基類指針。
(2)?運(yùn)算符重載
不能重載的運(yùn)算符:. 、 .* 、:: 、 sizeof 、 ?: 。
(3)?虛函數(shù)、純虛函數(shù)和抽象類
?
2、知識要點(diǎn):
(1)?運(yùn)算符重載(成員函數(shù)、友員函數(shù))
例如:class X;
X operator + ( X a ); ?//成員函數(shù),雙目運(yùn)算+、-、*、/
friend X operator + ( X a, X b); //友員函數(shù),雙目運(yùn)算
X operator - ( ); ?//成員函數(shù),單目運(yùn)算?-
friend X operator - ( X a);?//友員函數(shù),單目運(yùn)算
X operator ++ ( ) //成員函數(shù),前綴++、--
friend X operator ++ ( X& a); //友員函數(shù),前綴++、--
X operator ++ ( int ) //成員函數(shù),后綴++、--
friend X operator ++ ( X& a, int); //友員函數(shù),后綴++、--
friend ostream& operator << ( ostream & out, const X &obj);
//友員函數(shù), 輸出運(yùn)算符>>
friend istream& operator >> ( istream & in, X &obj);
//友員函數(shù), 輸入運(yùn)算符>>
(教材例6.8、實(shí)驗(yàn)三)
?
(2)?虛函數(shù)的特點(diǎn)、虛函數(shù)的應(yīng)用、抽象類
(教材例6.13,課后習(xí)題四-2,實(shí)驗(yàn)三)?????
第7章:模板
1、知識要點(diǎn):
(1)?函數(shù)模板的定義和使用
????(教材例7.2 ?課后練習(xí)一-1,2,3)
(2)?類模板的定義和使用
?
?
第8章:C++的I/O流類庫
1、知識要點(diǎn):
(1)>>、<<運(yùn)算符的重載
????(教材例8.7)
(2)用get()、put()進(jìn)行文件輸入、輸出
?????(教材例8.8,實(shí)驗(yàn)四-2)
??