虚函数

虚函数

代码如下定义:

// test1107.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <iostream>
#include <vector>
using namespace std;

class father{
public:
    int f_age;
    std::string f_name;
    father(int a = 1,std::string n = ""):f_age(a),f_name(n){}
    virtual int get_age(){return f_age;}    
};

class son : public father{
public:
    int s_age;
    std::string s_name;
    son(int a = 0,std::string n = ""):s_age(a),s_name(n){}
    int get_age(){return s_age;}
};


int main(){
    father f;
    son s;
    cout<<f.get_age()<<endl;
    cout<<s.get_age()<<endl;
    system("pause");
}

输出为:

1

0

在基类中的虚函数,就是要提示用户在派生类中要重新定义。

当基类中的虚函数定义时,是使用指针或者引用作为参数,那么在运行是,要判断传入的参数,是基类的对象,还是派生类的对象。

如果是基类的对象,则调用基类中的虚函数定义。

如果是派生类的对象,则调用派生类中对基类虚函数的新定义的函数。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏海天一树

小朋友学Python(28):join方法和eval方法

一、join方法 语法: str.join(sequence) 功能: join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串 参数: seq...

292100
来自专栏Python

python join 和 split的常用使用方法

函数:string.join() Python中有join()和os.path.join()两个函数,具体作用如下: join():    连接字符串数组。将...

23560
来自专栏happyJared

Python中的is和==以及字符串驻留机制

  先了解下官方文档中关于 is 和 == 的概念。is 表示的是对象标示符(object identity),而 == 表示的是相等(equality);is...

11410
来自专栏Golang语言社区

golang的{}初始化

之前说到Golang中某些类型可以赋值nil, 某些类型不能赋值nil. 不能赋值nil都是initialized value不为nil的类型, 例如: boo...

36990
来自专栏计算机视觉

Python 函数使用记录,join函数和os.path.join用法

1.join()函数 语法:‘sep’.join(seq) 参数说明: sep:分隔符。可以为空 seq:要连接的元素序列、字符串、元组、字典等 上面的语法即:...

463120
来自专栏十月梦想

函数的return(返回值)

return之后,函数就停止,return之后的语句将不执行,但是php也不会报错。

11930
来自专栏我是业余自学C/C++的

redis_3.0.7_sds.c_sdscatlen()

25240
来自专栏python成长之路

单例模式的理解

15830
来自专栏技术小站

找第一个只出现一次的字符

给定一个只包含小写字母的字符串,请你找到第一个仅出现一次的字符。如果没有,输出no。

46710
来自专栏猿人谷

C++ STL疑惑知识点

 1.remove的问题 ? ? 参考:http://zhidao.baidu.com/question/458494170.html 2.用find搜索数组中...

24890

扫码关注云+社区

领取腾讯云代金券