虚函数和虚基类的区别是什么啊?

[复制链接]
查看11 | 回复3 | 2020-4-23 16:06:21 | 显示全部楼层 |阅读模式
虚函数 , 虚基类,它们都和virtual有关,这两个带有虚字的定义容易使人混淆,下面先从作用上来解释这两个定义的区别:1.虚函数是用于多态中virtual修饰父类函数,确保父类指针调用子类对象时,运行子类函数的。2、.虚基类是用来在多继承中,如果父类继承自同一个父类,就只实例化一个父类(说的有点绕,就是只实例化一个爷爷的意思。具体区别登陆http://blog.csdn.net/a345203172/article/details/21697687详询。
回复

使用道具 举报

千问 | 2020-4-23 16:06:21 | 显示全部楼层
函数和类有相似之处?虚函数在派生类里必须被实现,虚基类则一定包含纯虚函数,不能被实例化,和接口有点相似。好好看看书吧
回复

使用道具 举报

千问 | 2020-4-23 16:06:21 | 显示全部楼层
虚基类j就是由虚函数这样定义virtual f(...) = 0
这样的类用来做接口,不能实例化,
虚函数明显是用来表示类里的接口动作的
回复

使用道具 举报

千问 | 2020-4-23 16:06:21 | 显示全部楼层
楼上两位回答都有问题吧..楼主问的是虚函数,而两位都是回答的:纯虚函数和抽象类了....虚函数的定义是在函数定义的最前加上关键词virtual来定义.虚函数其实和普通函数差不多,主要作用是在类的派生中产生动态调用的作用,即指向派生类的基类指针可以调用派生类的同名虚函数.而采用virtual fun(参数表) = 0这种形式声明的函数叫纯虚函数,其特征是没有函数体,它的作用主要是用来作派生类的接口,一个类里只要有这样一个函数,这个类就叫抽象类,当抽象类派生出派生类,这个抽象类就叫虚基类,纯虚函数必须在派生类里被实现,否则,这个派生类就仍是一个抽象类.不知这样说你是否明白一些???我来更正一下 后面=0的叫纯虚函数。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行