没有合适的资源?快使用搜索试试~ 我知道了~
实例代码讲解c++ 继承特性
0 下载量 119 浏览量
2020-12-17
02:55:08
上传
评论
收藏 58KB PDF 举报
温馨提示
试读
3页
——派生类需要自己的构造函数。 派生类中可以根据需要添加额外的数据成员和成员函数,甚至可以给予继承的原成员函数新的定义。 基类指针或引用可指向派生对象,反过来则只能使用强制类型转换。 派生类对象可使用基类的非私有成员。 可使用派生对象初始化基类对象或赋值。 一般不允许将基类对象赋给派生类对象(上面第三条),特殊情况下可以。 已有派生类对象初始化创建的派生类对象。 已有派生类对象给另一个派生类对象赋值。 派生类对象的析构函数被调用后会自动调用基类的析构函数。 C++11增加了允许继承构造函数的机制,但派生类默认不能继承构造函数和析构
资源详情
资源评论
资源推荐
实例代码讲解实例代码讲解c++ 继承特性继承特性
——派生类需要自己的构造函数。
派生类中可以根据需要添加额外的数据成员和成员函数,甚至可以给予继承的原成员函数新的定义。
基类指针或引用可指向派生对象,反过来则只能使用强制类型转换。
派生类对象可使用基类的非私有成员。
可使用派生对象初始化基类对象或赋值。
一般不允许将基类对象赋给派生类对象(上面第三条),特殊情况下可以。
已有派生类对象初始化创建的派生类对象。
已有派生类对象给另一个派生类对象赋值。
派生类对象的析构函数被调用后会自动调用基类的析构函数。
C++11增加了允许继承构造函数的机制,但派生类默认不能继承构造函数和析构函数。
class RatedPlayer : public TableTennisPlayer
{
private:
unsigned int rating; // add a data member
public:
RatedPlayer (unsigned int r = 0, const string &fn = "none", const string &ln = "none", bool ht = false);
RatedPlayer (unsigned int r, const TableTennisPlayer &tp);
unsigned int Rating() const { return rating; } // add a method
void ResetRating (unsigned int r) { rating = r; } // add a method
};
构造函数必须给新成员和继承的成员提供数据。
RatedPlayer::RatedPlayer(unsigned int r, const string &fn, const string &ln, bool ht) : TableTennisPlayer(fn, ln, ht)
{
rating = r;
}
派生类构造函数必须使用基类构造函数,创建派生类对象时,程序首先创建基类对象(初始化继承的数据成员)然后再调用派
生类构造函数。C++使用成员初始化列表语法完成该操作。
如没有调用基类构造函数,那么将隐式调用基类的默认构造函数。除非要使用默认构造函数,否则应显示调用正确的基类构造
函数。
派生类对象过期时,程序将首先调用派生类析构函数,然后再自动调用基类析构函数。
要使用派生类,程序必须要能访问基类声明。
派生类对象可以使用基类的方法,条件是方法不是私有的(即公有和保护)。
基类指针可以在不进行显示类型转换的情况下指向派生类对象;基类引用可以在不进行显示类型转换的情况下引用派生
类对象
RatedPlayer rplayer(1140, "Mallory", "Duck", true);
TableTennisPlayer &rt = rplayer;
TableTennisPlayer *pt =&rplayer;
rt.Name(); // invoke Name() with reference
pt->Name(); // invoke Name() with pointer
不可以将基类对象和地址赋给派生类引用和指针,除非使用强制转换(友元函数不是成员函数因此不能被继承,但欲使用
基类的友元函数时可使用此方法,但要小心用错)。
基类声明的函数引用参数或指针参数可用于值为基类对象或派生类对象以及它们的地址的情况。
void Show(const TableTennisPlayer &rt)
{
...
}
weixin_38642636
- 粉丝: 12
- 资源: 932
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 《CKA/CKAD应试指南/从docker到kubernetes 完全攻略》学习笔记 第1章docker基础(1.1-1.4)
- 基于python实现的水下压缩空气储能互补系统建模仿真与经济效益分析+源代码+论文
- 华中科技大学-自然语言处理实验,Bi-LSTM+CRF的中文分词框架,并且利用基于深度学习的方法进行中文命名实体识别++源码报告
- 基于动态罚函数的铁路车流分配与径路优化模型python源码
- 鱼群算法求解组环问题python源码+文档说明
- 基于决策优化的多波束测深测线规划模型MATLAB代码
- 课程设计-基于python实现的多目标优化算法求解带时间窗的车辆路径规划问题+源代码+文档说明+界面截图+pptx
- 基于通信信号与通信系统的MATLAB仿真源码-课程设计
- 嵌入式-信号机制(概念,发送,定时,捕捉,SIGCHLD 信号实现回收子进程)
- c语言管理系统大一大二笔记
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0