C++虚函数学习笔记
  6DMaaPzJglxt 2023年12月05日 49 0


#include<iostream>
#include<stdlib.h> 
using namespace std;
class Base1{
	public:
		//一般的虚函数成员声明语法:virtual 函数类型 函数名(形参表); 
		virtual void display() const;//定义虚函数,虚函数声明只能在类定义的原函数声明,不能再成员函数实现的时候	
		//虚构函数声明语法:virtual ~函数类型类名();
		//纯虚函数声明语法:virtual 函数类型 函数名(参数表)=0; //基类可以不给出函数实现部分 
};

void Base1::display() const{
	cout<<"Base1::dispaly()"<<endl;
}

class Base2:public Base1{
	public:
		void display() const;//覆盖基类的虚函数 
};//派生类Base2 

void Base2::display() const{
	cout<<"Base2::dispaly()"<<endl;
}

class Derived:public Base2{
	public:
		void display() const;//覆盖基类的虚函数 
};//派生类 Derived

void Derived::display() const{
	cout<<"Derived::displasy()"<<endl;
}

void fun(Base1 *ptr){
	ptr->display();//指向基类的指针 ,因为成员函数通过指针、引用来访问虚函数 
} 
void fun2(Base1 *ptr){
	ptr->Base1::display();//限定只调用基类的虚函数 
}
int main(){
	system("color 3");
	Base1 base1;
	Base2 base2;
	Derived derived;
	fun(&base1);
	fun(&base2);
	fun(&derived);
	fun2(&base1);
	fun2(&base2);
	fun2(&derived);
	system("pause");
	return 0;
}

C++虚函数学习笔记_函数声明


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年12月05日 0

暂无评论

推荐阅读
6DMaaPzJglxt