C++中函数的重载,重写,重定义

  • 函数重载
  • 函数重写
  • 函数重定义

函数重载

是指同一可访问区内被声明的几个具有不同参数列(参数的类型,个数,顺序不同)的同名函数,根据参数列表确定调用哪个函数,重载不关心函数返回类型

#include "pch.h"
#include <iostream>
#include <fstream>
#include <memory>
#include <vector>
#include <string>
using namespace std;
class base
{public:base(){std::cout << "class base has created\n";};void show(){std::cout << "class:base\n";};void show(string name){   std::cout << "class:base-name:" + name+ '\n';};void show(int age){std::cout << "class:base-age:" + age + '\n';};
};int main()
{ base BS;BS.show();BS.show("Lihua");
}
class base has created
class:base
class:base-name:Lihua

函数重写

继承类重写基类中的方法,实现方法是在基类中要重写的函数前加关键字virtual,如果基类声明中该函数被重载了则在继承类中必须全部重写对应的方法!否则基类中未被重写的方法将被覆盖,即:派生类对象不可以使用这些未被重写而被覆盖的方法

// CClearn.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//#include "pch.h"
#include <iostream>
#include <fstream>
#include <memory>
#include <vector>
#include <string>
using namespace std;
class base
{public:base(){std::cout << "class base has created\n";};virtual void show(){std::cout << "class:base\n";};virtual void show(string name){   std::cout << "class:base-name:" + name+ '\n';};
};
class student :public base
{public:virtual void show(string name){std::cout << "class:student-name:" + name + '\n';};};
int main()
{ base BS;BS.show();BS.show("Lihua");student std;//std.show();std.show("xiaoming");
}
class base has created
class:base
class:base-name:Lihua
class base has created
class:student-name:xiaoming

函数重定义

在继承类中重写基类函数,如果基类中对应函数前没有关键字virutual 则基类方法被覆盖,派生类对象无法使用基类对应的方法

#include "pch.h"
#include <iostream>
#include <fstream>
#include <memory>
#include <vector>
#include <string>
using namespace std;
class base
{public:base(){std::cout << "class base has created\n";};void show(){std::cout << "class:base\n";};void show(string name){   std::cout << "class:base-name:" + name+ '\n';};
};
class student :public base
{public:void show(int age){std::cout << "class:student-age:";std::cout << age;};};
int main()
{ base BS;BS.show();BS.show("Lihua");student std;//std.show();std.show(19);
}
class base has created
class:base
class:base-name:Lihua
class base has created
class:student-age:19

C++中函数的重载,重写,重定义相关推荐

  1. 第九天2017/04/18(3、重载/覆盖 PK 重写/重定义、父类子类混搭风、抽象类)

    1.重载/覆盖 PK 重写/重定义 [预备知识] 函数重载必须在同一个类中发生子类无法重载父类的函数,父类同名的函数将会被名称覆盖重载是在编译期间根据参数类型和个数决定函数调用重载只放在同一个类之中, ...

  2. java中函数的重载_Java中函数的重载

    函数的重载 1.同一个类 2.同名函数 3.参数个数不同或者参数类型不同 4.java是严谨性语言,如果函数出现的调用的不确定性,会编译失败. public static int add(int a, ...

  3. 父子类之间,成员函数重写、重载以及重定义的区别

    1.重写override:也叫做覆盖.子类重新定义父类中有相同名称和参数列表的虚函数.函数特征相同. 重写需要注意: 1) 被重写的函数不能是static的.必须是virtual的 2) 重写函数必须 ...

  4. 重写重载与重定义的区别

    1 成员函数重载特征:    a 相同的范围(在同一个类中)    b 函数名字相同    c 参数不同    d virtual关键字可有可无 2 重写(覆盖)是指派生类函数覆盖基类函数,特征是: ...

  5. 重载、重定义、虚函数

    转自:http://www.cnblogs.com/j2eee/archive/2006/09/22/511954.html 函数重载 如何讲函数重载: What--函数重载是什么? why--为什么 ...

  6. C++学习笔记-----继承体系中函数的重载,覆盖和隐藏的区别

    1.重载,在同一个作用域中定义的同名不同参的一些函数为重载. 2.隐藏,若在基类中定义了某一non_virtual函数,在派生类重存在同名函数(不需要参数列表相同),基类的该函数在派生类中是不可见的, ...

  7. C++中函数的重载和函数指针排序大全

    函数重载的判断标准, 参数个数不相同 参数的类型不相同 参数的顺序不相同 注意函数的返回值不是函数重载的判断标准 函数变量得到声明 #include <iostream>using nam ...

  8. C语言中结构体指针出现重定义,C语言结构体指针中包含结构体指针

    码农公社  210.net.cn  210是何含义?10月24日是程序员节,1024 =210.210既 210 之意. 将C++代码转化为C的过程中,一些C++的特性无法使用 类内私有变量在类内公共 ...

  9. c语言 方法重载 冲定义,C++ 重载(overload)、重写(overrride)、重定义(redefine)

    今天参加了一个面试,问到了上面的C++知识点,都知道,时间久了难免遗忘,感觉回答的一般,不够专业,部分点还答错了,sigh!在此再补漏下. 注意:这些都是C++语言的特性,C语言连最简单的重载(ove ...

最新文章

  1. wpgcms---流程控制
  2. python太阳花的编程_python大佬养成计划----HTML DOM
  3. 谁动了我的内存之PHP内存溢出
  4. 【thinkPHP框架】Failed opening required 'header.php' include_path='.;c:\php5\pear 终级解决方案...
  5. leetcode957. Prison Cells After N Days
  6. 学科前沿技术专题第九章
  7. ZStack实践汇 | ZStack部署实战之VDI异构部署
  8. iPad2如何从iOS6降级到5.1.1
  9. steadycom-基于群落代谢网络建模-代码详解
  10. 护眼色的RGB值及颜色代码
  11. JAVA|大小写英文字母表
  12. 从古至今的计算机设备,计算器从古至今的发展形成
  13. 《人月神话》(The Mythical Man-Month)看清问题的本质:如果我们想解决问题,就必须试图先去理解它...
  14. 《C++ Primer 第5版》-11.4无序容器-康奈尔笔记
  15. pandas笔记之分列
  16. Openjudge NOI题库 ch0111/10 河中跳房子|NOIP2015 day2 stone
  17. Solidity 基础(一)
  18. unity 求出物体所在相机的横截面 解决调整 field Of View后场景物体和UI不匹配
  19. codechef EBAIT Election Bait【欧几里得算法】
  20. Day-1 货仓选址(绝对值不等式)

热门文章

  1. 动态渲染video视频
  2. 交互器、linux下的常用命令
  3. 【读书向】阿里云天池大赛赛题解析——可视化
  4. applicationContext-job
  5. 教你剪辑调整视频亮度、饱和度,一个视频调整出不同画面颜色
  6. 法国主要贸易海港加入区块链货运物流试点
  7. 拼多多虚拟资源、虚拟店铺教程
  8. python 数据分析 |3. Pandas 学习
  9. led显示屏播控服务器,显示屏集中播控方案--NovaPluto.pdf
  10. MySQL数据库的存储引擎