C++编程-从问题分析到程序设计

本文深入探讨C++中的类和数据抽象概念,包括构造函数、析构函数的作用及使用方法,以及继承与组合的不同应用方式。同时,还介绍了派生类如何从基类继承特性,并探讨了虚函数和纯虚函数的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第13章-类和数据抽象

1.C++并不自动初始化变量,要保证类中的数据成员被初始化,必须使用构造函数

2.构造函数与类的名称相同,并且没有任何类型,当然也就没有返回值。

3.一个类有多个构造函数,并且构造函数可能有相同的名称,但是参数一定不同

4.构造函数分为:带参数的构造函数+不带参数的构造函数(默认构造函数)

5.析构函数:没有任何类型、一个类只有一个、不能够带参数、名称相对固定:“~”加上类名

6.类函数:成员函数+构造函数+析构函数

7.*.cpp只包含函数的定义,不包含类的定义。


第14章 集成和组合

1.两个类联系起来的方法:继承(“ is-a kind of ”关系:是一种。。。)和组合(“ has-a kind of ”关系:有一种。。。关系);

2.继承:在已有类的基础上创建新的类,其中在已有类的基础上创建的类称之为,派生类;已有类称之为:基类

3.继承:单重继承(一个基类)、多重继承(多个基类)。

4.继承:

class circle: publicshape

{

..........

}


class circle: private shape

{

...........

}

其中,派生类circle继承了基类shape,public表示shape的所有公有成员及成为circle的公有成员,private表示shape的所有公有成员成为circle的私有成员。

5.派生新类经历的三个步骤:

  • 吸收基类成员
  • 改造基类成员
  • 添加新的成员

6.三种继承方式:

  • 公有继承
  • 私有继承
  • 保护继承
7.公有继承:基类的public和protected成员的访问属性在派生类中保持不变,但基类的private成员不可直接访问

8.私有派生:继承的基类成员全部变成私有成员,也就是基类成员的终结。

9.保护继承:派生类的家族可访问,类继承家族之外不可访问;

10.绝对不要重新定义继承而来的非虚函数

11.基类与派生类的对应关系:

  • 单继承:派生类由一个基类派生而来
  • 多继承:派生类由多个基类派生而来
  • 多重派生:一个基类派生出多个不同的派生类
  • 多层派生:派生类又作为基类,继续派生派生类。

12.基类与派生类的构造函数均自己负责。

13.派生类的构造函数任务之一:给基类的构造函数传递参数。

14.同名隐藏原则:派生类中的同名成员会使得基类中同名成员隐藏。

15.虚基类:虚继承

16.组合:一辆汽车有一个发动机和四个轮子;接口:作为整体的汽车不在具备发动机的运转功能和轮子的转动功能,但通过这些功能的组合,具有了自己的功能:移动.

17.公有继承:A类是B类的公有基类,则B类型对象包括了A类型的全部接口。如:卡车是汽车,消防车也是汽车;接口:卡车和消防车具有汽车的通用功能(移动),它们还各自具有自己的功能。

18.派生类对象:总含有一个基类的子对象。

19.不同情况下的内存布局:

  • 单继承:基类数据在前,派生类新增数据在后;
  • 多继承:各基类数据按顺序在前,派生类新增数据在后;
  • 虚继承:需要增加指针,间接访虚基类数据;



20.运算符重载:

除了以下运算符,其余运算符均可重载:"." ".*" "::" "?:" 

重载后运算符的优先级和结合性都不会改变

21.声明形式

函数类型 operator 运算符 (形参)

{

.... ....

}

其中,operator 运算符为函数名

22.虚函数:

virtual 函数类型 函数名 (形参表)

{

函数体

}

23.虚函数不能进行早绑定,只能进行晚绑定。编译器为每一个具有虚函数的类准备了一个虚函数表。

24.纯虚函数是一个在基类中声明的虚函数,它在该基类中没有办法具体定义此函数的内容,要求各个派生类根据实际需要定义自己的版本。

  • 纯虚函数的声明格式:

virtual 函数类型 函数名 (参数表) = 0;

  • 带有纯虚函数的类称为抽象类:

class 类名

{

virtual 类型 函数名 (参数表) = 0;

... ...

}

25.


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值