C++语法笔记 – 多态性
本文由发表于6年前 | C++ | 暂无评论 |  被围观 3,453 views+

运算符重载:


运算符重载的规则:

1、C++中的运算符除了少数几个之外,全部可以重载,而且只能重载C++中已经有地运算符
2、重载之后优先级不会改变


运算符重载的形式:

1、重载为类的成员函数:
函数类型 operator 运算符(形参表){ 函数体; }
2、重载为类的友元函数:
friend 函数类型 operator 运算符(形参表){ 函数体; };

将运算符重载为友元函数,就必须把操作数全部通过形参的方式传递给运算符重载函数。

虚函数:

解决的问题:为了能够访问到派生了新增的同名函数,而不是从从基类继承的函数成员需要使用虚函数进行动态绑定。

如果需要通过基类的指针指向派生类的对象,并访问某个与基类同名的成员,那么首先在基类中将这个同名函数说明为虚函数。这样,通过基类类型的指针,就可以使用属于不同派生类的不同对象产生不同的行为,从而实现了运行过程的多态。


一般虚函数成员:

声明:
virtual 函数类型 函数名(形参表) { 函数体; }

虚函数声明只能出现在类定义中的函数原型声明中,而不能在成员函数实现的时候。


虚析构函数:

在C++中不能声明虚构造函数,但是可以声明虚析构函数:
virtual ~类名();

简单的说,如果有可能通过基类指针调用对象的析构函数(通过delete),并且被析构的对象是有重要的析构函数的派生类的对象,就需要让基类的析构函数成为虚函数。

抽象类:

抽象类时带有纯虚函数的类。


纯虚函数:

是一个在基类中声明的虚函数,它在该基类中没有定义具体的操作内容,要求各派生类根据实际需要定义自己的版本,纯虚函数的声明格式为:

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

区别:还有一种情况时函数体为空的虚函数,而纯虚函数根本就没有函数体。

抽象类的主要作用时通过它为一个类族建立一个公共的接口,使它们能够更有效地发挥多态特性。如果派生类没有给出全部纯虚函数的实现,这时派生类仍然是一个抽象类。

抽象类不能实例化。

除了文章中有特别说明,均为IT宅原创文章,转载请以链接形式注明出处。
本文链接:http://www.itzhai.com/c-syntax-notes-polymorphism.html
关键字: ,
arthinking Java技术交流群:280755654,入门群:428693174 more
分享到:
 
2011 9/3
如果您有更好的原创技术博文或者观点,欢迎投稿:admin@itzhai.com,或者关注订阅左侧浮动面板的微信号订阅IT宅itread)发送消息。
C++推荐专题
C++
文章评论
    没有评论
给我留言

有人回复时邮件通知我
C++的相关文章
随机文章 本月热门 热评
1 Map映射集合实现类HashMap的介绍和迭代遍历方法 2011/10/16
2 HighPay Zoom博客系统搭建说明 2016/5/3
3 数据结构笔记 – 排序算法 最简单的排序实现 初级版的冒泡排序 2011/9/19
4 Hibernate关联映射创建数据库中存在的对象设置关联关系不级联保存的方法 2011/10/2
5 8251A串行通信和8253计数器编程举例 2011/5/5
6 Java Web笔记 – EL表达式的介绍和使用 2011/11/12
友情推荐 更多
破博客 文官洗碗安天下,武将打怪定乾坤。多么美好的年代,思之令人泪落。
Mr.5's Life 白天是一名程序员,晚上就是个有抱负的探索者
行知-追寻技术之美 关注大数据,分布式系统
我爱编程 编程成长轨迹
Cynthia's Blog 学习笔记 知识总结 思考感悟
 
猜您喜欢
欢迎关注我的公众号 IT宅
关于IT宅 文章归档

IT宅中的文章除了标题注明转载或有特别说明的文章,均为IT宅的技术知识总结,学习笔记或随笔。如果喜欢,请使用文章下面提供的分享组件。转载请注明出处并加入文章的原链接。 感谢大家的支持。

联系我们:admin@itzhai.com

Theme by arthinking. Copyright © 2011-2015 IT宅.com 保留所有权利.