重载(overload)、重写:覆盖(override)、重定义:遮蔽(redefine)、多态
- 同一域名空间,函数名相同,签名不同
编译期绑定确定绑定函数,也称为静态多态
重写:覆盖(override)
- 虚函数
子类空间,函数名相同,签名相同
重定义:遮蔽(redefine)
- 非虚函数,子类成员函数与父类成员函数同名
虚函数,子类成员函数与父类成员函数同名但不同签名
多态:(动态多态)
- 运行期确定绑定对象,也称为动态多态
- 同签名虚函数构成覆盖
父类指针指向子类对象,调用属于子类的函数
- 顶层函数重载操作符
- 非对象操作数可以出现在操作符左边
- 使用类成员函数重载是,第一操作数必须是累的对象
- 顶层函数不能直接访问类私有成员,最好将顶层重载函数设为友元函数,方便直接访问私有数据成员
- 重载[]: 重载为成员函数,检查下标 , 返回一个引用适应左值情况
- 重载(): 函数调用重载操作符
析构函数出现,必须定义拷贝构造,赋值构造函数
- 继承下的构造函数:
- 先父类按继承顺序构造,再成员按顺序构造,最后派生类构造
- 每一层只负责调用父类构造函数
- 基类没有默认构造时,子类构造函数必须显式调用基类的某个构造函数
- 创建派生类对象时,自动调用基类默认构造函数
- 子类有构造函数,基类没有默认构造,创建子类对象时,自动创建基类默认构造函数
- 子类没有构造函数,基类有默认构造,创建子类对象时,自动调用基类默认构造
- 子类有构造函数,基类也有默认构造,创建子类对象时,直接调用基类默认构造,或者调用子类显式调用的构造函数
- 子类基类均有构造,但是基类没有默认构造,创建子类对象时,必须显式调用基类构造函数 - 继承下的析构函数: 定义实现对派生类新增成员的析构释放
- 虚基类构造优先于非虚基类的构造
- 虚基类构造由最派生类调用,其他派生类跳过对虚基类构造的调用
- 派生类对象和指针可适用于任何基类对象或指针使用的位置(子类可以向上转型)
赋值兼容:子类对象可以赋值或者初始化父类对象,基类指针可以指向子类对象地址
重载(overload)、重写:覆盖(override)、重定义:遮蔽(redefine)、多态的更多相关文章
- 【转】重载(overload),覆盖(override),隐藏(hide)的区别
原文网址:http://www.cppblog.com/zgysx/archive/2007/03/12/19662.html 写正题之前,先给出几个关键字的中英文对照,重载(overload),覆盖 ...
- 重载(overload),覆盖(override),隐藏(hide)的区别
写正题之前,先给出几个关键字的中英文对照,重载(overload),覆盖(override),隐藏(hide).在早期的C++书籍中,可能翻译的人不熟悉专业用语(也不能怪他们,他们不是搞计算机编程的, ...
- 重载(overload)、覆盖(override)和隐藏(hide)
写正题之前,先给出几个关键字的中英文对照,重载(overload),覆盖(override),隐藏(hide).在早期的C++书籍中,可能翻译的人不熟悉专业用语(也不能怪他们,他们不是搞计算机编程的, ...
- 区分重载(overload),覆盖(Override)和隐藏(hide)
重载overload,这个概念是大家熟知的.在同一可访问区内被声名的几个具有不同参数列的(参数的类型.个数.顺序不同)同名函数,程序会根据不同的参数列来确定具体调用哪个函数,这种机制就是重载.重载不关 ...
- 重写(overwrite)、重载(overload)和覆盖(override)三者之间的区别
覆盖:子类继承了父类的同名无参函数.当子类从父类继承了一个无参函数,而又定义了一个同样的无参函数,则子类定义的方法覆盖父类的方法,称为覆盖. 重载:子类继承了父类的同名有参函数.当子类继承了父类的一个 ...
- 重载(overload)、覆盖(override)、隐藏(hide)的区别
http://blog.csdn.net/yanjun_1982/archive/2005/09/02/470405.aspx 重载是指不同的函数使用相同的函数名,但是函数的参数个数或类型不同.调用的 ...
- JAVA是否允许返回值类型不同的重载overload或覆盖override
在看<Thinking in java>的时候,看到子类的方法和父类的方法名字相同,但是返回值类型不同,然后就开始怀疑这属于覆盖吗,到网上找到了答案,分析见接下来的网址: http://g ...
- 重载(overload),覆盖/重写(override),隐藏(hide)
写正题之前,先给出几个关键字的中英文对照,重载(overload),覆盖/重写(override),隐藏(hide).在早期的C++书籍中,常常把重载(overload)和覆盖(override)搞错 ...
- C++ 重载(overload)、重写(overrride)、重定义(redefine)总结
引自:http://www.189works.com/article-42111-1.html 先来看几个概念: 重载(overload),重写(override,也称覆盖), 重定义(redefin ...
- C# 重载 overload,重写override覆盖
重载overload 派生类和基类的方法同名,其中访问修饰符(public,private,protected,internal,protected internal),返回类型,参数类型,个数,顺序 ...
随机推荐
- Linux进程内存分析pmap命令(转)
名称: pmap - report memory map of a process(查看进程的内存映像信息)用法 pmap [ -x | -d ] [ -q ] pids... ...
- 8.4c#递归
一.概念conception: 函数体内调用本函数自身,直到符合某一条件不再继续调用. 二.应满足条件factor: (1)有反复执行的过程(调用自身): (2)有跳出反复执行过程的条件(函数出口) ...
- RabbitMQ介绍1 - 由来
RabbitMQ是一个异步消息通信中间件,用erlang语言开发,实现了AMQP(Advanced Message Queue )协议,是一个开源产品,官方网站:http://www.rabbitmq ...
- c#unity
using UnityEngine;using System.Collections; public class PacmanMove : MonoBehaviour { public float s ...
- web性能 部分
雅虎34条提高性能的经验 http://www.cnblogs.com/li0803/archive/2009/09/20/1570581.html 减少http请求 1.尽量合并多个css.js文件 ...
- 使用Git命令从Github下载代码仓库
Github作为最大的开源代码仓库,也是作为版本控制工具,简直就是程序员的天堂,是一座挖掘不尽的宝藏.现在讲解一下如何把一个Github上的项目下载到本地,也就是在本地也建立一个项目仓库,以后进行项目 ...
- GC之三--GC 触发Full GC执行的情况及应对策略
1.System.gc()方法的调用 此方法的调用是建议JVM进行Full GC,虽然只是建议而非一定,但很多情况下它会触发 Full GC,从而增加Full GC的频率,也即增加了间歇性停顿的次数. ...
- IT项目管理
IT项目管理是项目管理在IT领域的应用,结合IT行业特点运用项目管理技术.理念和方法,包括9大知识领域(项目综合.范围.时间.成本.质量.人力资源.沟通.风险和采购管理)以及启动.计划.实施.控制和收 ...
- Jquery动态进行图片缩略
//页面加载完执行resizeImage()函数 $(document).ready(resizeImage()); function resizeImage(){ $(".pic a im ...
- 20145305 《Java程序设计》实验五
实验内容 1.掌握Socket程序的编写: 2.掌握密码技术的使用: 3.设计安全传输系统. 实验步骤 基于Java Socket实现安全传输 基于TCP实现客户端和服务器,结对编程一人负责客户端,一 ...