C++中函数的重载,重写,重定义
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++中函数的重载,重写,重定义相关推荐
- 第九天2017/04/18(3、重载/覆盖 PK 重写/重定义、父类子类混搭风、抽象类)
1.重载/覆盖 PK 重写/重定义 [预备知识] 函数重载必须在同一个类中发生子类无法重载父类的函数,父类同名的函数将会被名称覆盖重载是在编译期间根据参数类型和个数决定函数调用重载只放在同一个类之中, ...
- java中函数的重载_Java中函数的重载
函数的重载 1.同一个类 2.同名函数 3.参数个数不同或者参数类型不同 4.java是严谨性语言,如果函数出现的调用的不确定性,会编译失败. public static int add(int a, ...
- 父子类之间,成员函数重写、重载以及重定义的区别
1.重写override:也叫做覆盖.子类重新定义父类中有相同名称和参数列表的虚函数.函数特征相同. 重写需要注意: 1) 被重写的函数不能是static的.必须是virtual的 2) 重写函数必须 ...
- 重写重载与重定义的区别
1 成员函数重载特征: a 相同的范围(在同一个类中) b 函数名字相同 c 参数不同 d virtual关键字可有可无 2 重写(覆盖)是指派生类函数覆盖基类函数,特征是: ...
- 重载、重定义、虚函数
转自:http://www.cnblogs.com/j2eee/archive/2006/09/22/511954.html 函数重载 如何讲函数重载: What--函数重载是什么? why--为什么 ...
- C++学习笔记-----继承体系中函数的重载,覆盖和隐藏的区别
1.重载,在同一个作用域中定义的同名不同参的一些函数为重载. 2.隐藏,若在基类中定义了某一non_virtual函数,在派生类重存在同名函数(不需要参数列表相同),基类的该函数在派生类中是不可见的, ...
- C++中函数的重载和函数指针排序大全
函数重载的判断标准, 参数个数不相同 参数的类型不相同 参数的顺序不相同 注意函数的返回值不是函数重载的判断标准 函数变量得到声明 #include <iostream>using nam ...
- C语言中结构体指针出现重定义,C语言结构体指针中包含结构体指针
码农公社 210.net.cn 210是何含义?10月24日是程序员节,1024 =210.210既 210 之意. 将C++代码转化为C的过程中,一些C++的特性无法使用 类内私有变量在类内公共 ...
- c语言 方法重载 冲定义,C++ 重载(overload)、重写(overrride)、重定义(redefine)
今天参加了一个面试,问到了上面的C++知识点,都知道,时间久了难免遗忘,感觉回答的一般,不够专业,部分点还答错了,sigh!在此再补漏下. 注意:这些都是C++语言的特性,C语言连最简单的重载(ove ...
最新文章
- MySQL的大分页查询该如何优化?
- 浅谈Lucene中的DocValues
- -ms-,-moz-,-webkit-,-o-含义及各浏览器内核整理
- [译] Fiber内幕:深入概述React新的协调算法
- 二分查找算法(递归与非递归两种方式)
- 搜百度 php教程,jquery php 百度搜索框智能提示效果_PHP教程
- 如何 循环 字母 php,PHP-php循环打印a-z字母的疑惑
- 设计模式——单例模式详解
- DE 27 Sketching Solutions of 2x2 Homogeneous Linear System with Constant Coefficients
- 网络设备中的路由器的作用,如何设置路由器,上网、IP分配、黑白名单、访问量...
- spring boot 动态代理
- WIN 10 挂载分区之diskpart工具
- 安装黑苹果时提示未能与服务器,安装黑苹果遇到的问题与解决记录
- golang fmt包中的占位符
- 原生JavaScript实现video播放器中播放/暂停/快放/慢放/慢动作功能
- 微信小程序第六节:WXML语法学习
- 第一部分 思科九年 一(6)
- 下载WIN7版本的iTunes
- sas统计分析学习笔记(九)——方差分析
- java模板方法模式_java设计模式(模板方法模式)
热门文章
- 对一款国家级内容过滤系统Dos安全缺陷分析
- python游戏编程
- 最好用的六款虚拟机软件,赶紧收藏
- HTML5期末考核大作业,个人网站—— 程序员个人简历模板下载HTML+CSS+JavaScript
- 七天免登陆有效期 java_JWT过期刷新问题,实现十五天免登陆
- 16、Kanzi插件——通过Kanzi Engine插件创建自定义动作+代码解析
- Java 设计模式总结及六大设计原则
- iOS获取高德地图实现持续定位功能
- windows7台式计算机网线连接,win7台式机连接wifi的方法步骤详解(2)
- HDFS分布式文件系统架构