开发者社区> usher.yue> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

C++虚函数 纯虚函数 与多态的模糊解释

简介:   //虚函数是多态的关键 virtual   我们直接定义对象 来调用函数并不能实现多态性 //多态的特性是 父类的指针可以指向子类的对象 我们可以令父类的指针指向 不同的子类对象MFC类库就是多态的原理 //比如下面我们如果同时让p1 p2分别指向新开辟的 A B类的对象 那么...
+关注继续查看
 

//虚函数是多态的关键 virtual   我们直接定义对象 来调用函数并不能实现多态性
//多态的特性是 父类的指针可以指向子类的对象 我们可以令父类的指针指向 不同的子类对象MFC类库就是多态的原理
//比如下面我们如果同时让p1 p2分别指向新开辟的 A B类的对象 那么 调用print函数的时候就会出现都调用的基类的函数
//如何解决这个问题 呢? 那么就要用到虚函数了   我们解决的关键是将 基类的成员函数声明为虚函数 那么就可以实现多态

#include <iostream>
using namespace std ;
class A

public :
 virtual void print()
 {
  cout<<"this is A "<<endl;
 }
};
class  B  :public  A
{  
public :
 void print()
 {
  cout<<"this is B"<<endl;
 }
};
int main()
{
 A * p1=new A ;
 A  * p2=new B;
 p1->print() ;
 p2->print() ;
 return  0;
}

 

 

 

//多态的另一个作用就是纯虚函数 
//纯虚函数 只要一个类中有 类似 virtual  void a() =0 ;
//包含一个纯虚函数的类就叫抽象类 抽象类不能实现对象 只能作为接口使用 。和java的借口 类似
//在子类中如果想要实现对象 必须要实现 抽象类中的 纯虚函数
#include <iostream>
using namespace std ;
class  Animal
{  
public :
 virtual void Language() =0;
};
class Dog :public Animal
{  
public :
 void Language()
 {
  cout<<"wang wang.."<<endl;
 }
};
void main()
{
 Dog dog ;
    dog.Language() ;
   
   
}

 

 

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
【C++面试】虚函数和纯虚函数
因为写代码时不能在一开始就确定被调用的是基类的函数,还是哪个派生类的成员函数,所以C++通过虚函数实现多态,即在基类中用virtual声明,父类可以引用子类对象(如Human* phuman1 = new Men;父类类型指针phuman指向子类对象),子类成员函数可以重写父类方法(函数)。
26 0
远程winodws 出现身份验证错误
连接的时候出现身份验证错误
190 0
虚方法和多态
以来倒置原则程序与设计要以来抽象(Pet)类,而不依赖于具体类(Dog)
327 0
C++纯虚函数实现
纯虚函数就是一个在基类中的虚函数,差别只是在一般的虚函数声明的后面加了“=0”,虚函数允许函数通过与函数体之间的联系在运行时才建立,也就是在运行时才决定如何动作,称为运行时的多态性,虚函数是可以有具体实现代码的。
829 0
类虚函数
  理解C++中继承层次的关键在于理解如何确定函数调用,确定函数调用遵循以下四个步骤: (1)首先确定进行函数调用的对象,引用或指针的静态类型。 (2)在该类中查找函数,如果找不到,就在直接基类中查找,如此循着类的继承链往上找,直到找到该函数或者查找完最后一个类。
788 0
【转】C++纯虚函数
一、定义  纯虚函数是在基类中声明的虚函数,它在基类中没有定义,但要求任何派生类都要定义自己的实现方法。在基类中实现纯虚函数的方法是在函数原型后加“=0”   virtual void funtion1()=0 二、引入原因  1、为了方便使用多态特性,我们常常需要在基类中定义虚拟函数。
543 0
+关注
usher.yue
算法相关技术专家
431
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载