欢迎光临散文网 会员登陆 & 注册

2017-C++期末总复习

2022-02-22 18:00 作者:答案鬼  | 我要投稿

《面向对象程序设计及C++》总复习

第1章:面向对象程序设计及C++语言概述

1、基本概念:

(1)面向对象的三个主要特性

(2)C++源程序的扩展名:.cpp;编译后的目标文件的扩展名:.obj;链接后的可执行文件的扩展名为:.exe;程序总是从main()函数开始运行。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

第2章:C++语言对C语言的改进及扩展

1、基本概念:

(1)新的I/O流对象cincout。注意它们默认的输入、输出格式!

(2)使用作用域运算符(::)能在局部变量作用域内访问同名全局变量。(课后练习四-3)

(3)newdelete动态分配和释放内存

(4)带默认参数值的函数

(4)内联函数(inline)的概念

(5)C++中的异常处理:try(检查异常)、throw(抛出异常)、catch(捕捉异常)。

 

2、知识重点:

(1) const修饰符与指针

区别下列定义:

const char * name=chen  //指向常量的指针

char * const name=chen  //常指针

const char * const name=chen  //指向常量的常指针

(课后练习 -5

(2) 函数重载

特征:函数名相同,函数参数类型或个数(参数列表)不同。与函数返回类型无关。

练习:下列重载函数定义错误的是           

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) 引用变量的别名

重点:引用的定义

引用、指针作为函数参数。

练习:

#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;  }

该程序运行输出是:              

 

(课后练习四-6)

 

 

 

 

 

 

第3章:类与对象

1、基本概念:

(1) 类成员的访问属性有几种

(2) 构造函数、析构函数的定义和特点。

(3) this指针指向当前对象

(4) 对象作为函数参数的三种形式:传值(对象变量)、传地址(对象指针)、传名(引用)

 

2、知识重点:

(1) 构造函数与拷贝构造函数的使用

系统默认构造函数(无参数)

拷贝构造函数(参数通常为对象的常引用

练习1:以下语句调用哪种构造函数:

class A;  A a;  //调用不带参数的构造函数

class A;  A *p=new A; //调用不带参数的构造函数

class A;  A a, b=a;  //a调用不带参数的构造函数

//b调用拷贝构造函数

class A; A a, b(a);   //同上

class A; A a,b; b=a;  //?

class A; void fun(A x); A a; fun(a);

//对象作为函数参数或返回值时会调用拷贝构造函数

(2) 类的定义与使用    

(例3.11、 教材例3.13、课后练习四-1,5)

(3) 对象数组与指针的使用   (教材例3.15)

(4) 友元(友元函数、友元成员、友元类

第4章:类中数据的共享与保护

知识重点:

(1)  静态static数据成员

     属于类的范畴,为同类对象所共享。

    (课后练习三-1,2)

 

第5章:类与类之间的关系

内容1:类的组合

(1) 类对象作为成员(构造函数调用次序

 

内容2:类的继承与派生

1、基本概念:

(1) 基类成员在派生类中的访问属性

基类的private成员不能被继承

(2) 赋值兼容规则

基类对象=派生类对象;

基类对象指针=派生类对象地址;

基类对象引用=派生类对象;//初始化

基类对象指针=派生类对象指针;

(3) 继承的理解(单一继承、多重继承、虚基类等)

 

2、知识重点:

(1) 派生类的定义

(2) 构造函数(析构函数)的执行次序

单一继承多重继承带虚基类的多重继承

虚基类->非虚基类->对象成员->派生类自身

(教材例5.8,课后练习四-1 ,2)

(3) 继承中的同名问题

单继承中的同名问题(同名覆盖)

使用成员名限定法:基类名::

多重继承中的同名问题(二义性)

使用成员名限定法:类名:: 

使用虚基类:virtual

      (实验二-1)

 

 

 

 

 

 

 

 

 

 

练习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();    

}

该程序运行输出是:         

 


第6章:多态性

1、基本概念:

(1) 两种多态性

静态多态性编译时多态性:函数(运算符)重载

动态多态性运行时多态性:继承、虚函数、基类指针

(2) 运算符重载

不能重载的运算符:. .* :: sizeof ?:

(3) 虚函数、纯虚函数和抽象类

 

2、知识要点:

(1) 运算符重载(成员函数、友员函数)

例如:class X;

X operator + ( X a );  //成员函数,双目运算+、-、*、/

friend X operator + ( X a, X b); //友员函数,双目运算

X operator - ( );  //成员函数,单目运算 -

friend X operator - ( X a); //友员函数,单目运算

X operator ++ ( ) //成员函数,前缀++、--

friend X operator ++ ( X& a); //友员函数,前缀++、--

X operator ++ ( int ) //成员函数,后缀++、--

friend X operator ++ ( X& a, int); //友员函数,后缀++、--

friend ostream& operator << ( ostream & out, const X &obj);

//友员函数, 输出运算符>>

friend istream& operator >> ( istream & in, X &obj);

//友员函数, 输入运算符>>

(教材例6.8、实验三)

 

(2) 虚函数的特点虚函数的应用、抽象类

(教材例6.13,课后习题四-2,实验三)     


第7章:模板

1、知识要点:

(1) 函数模板的定义和使用

    (教材例7.2  课后练习一-1,2,3)

(2) 类模板的定义和使用

 

 

第8章:C++的I/O流类库

1、知识要点:

(1)>><<运算符的重载

    (教材例8.7)

(2)用get()、put()进行文件输入、输出

     (教材例8.8,实验四-2)

  


2017-C++期末总复习的评论 (共 条)

分享到微博请遵守国家法律