`
webcode
  • 浏览: 6042438 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

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

 
阅读更多

//虚函数是多态的关键 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++注意事项.pdf

    3. 继承与多态:掌握类的继承、派生类的定义和使用,理解虚函数的概念和实现多态的方式(包括虚函数和纯虚函数),以及基类指针或引用操作派生类对象时的多态行为。 4. 标准模板库(STL):熟悉STL容器(如vector、...

    Effective C++ 中文版第三版 高清PDF

    理解何时使用虚函数、纯虚函数以及接口类,以及何时应选择组合而非继承,是提升设计质量的关键。 10. **命名空间与作用域**:命名空间可以避免全局命名冲突,而作用域规则则决定了变量的可见性和生命周期。正确使用...

    30天掌握C++精髓——经典教程

    - **虚函数与纯虚函数**:理解虚函数和纯虚函数的用途及实现多态的方式。 - **多态性**:探讨多态性的实现方式,包括重载、覆盖和动态绑定。 #### 3. 模板与泛型编程 - **模板介绍**:学习模板的基本概念及其在函数...

    c c++经典例子解析

    例如,虚函数和纯虚函数的应用。 4. **模板**:C++ 的模板机制允许编写泛型代码,适用于处理多种数据类型。 5. **STL(标准模板库)**:包括容器(如 vector、list、map)、算法和迭代器,是 C++ 的强大工具。经典...

    高质量C++编程指南

    - **多态**:利用虚函数和纯虚函数实现动态绑定,支持 polymorphism。 9. **设计模式**: - **常见模式**:如工厂模式、单例模式、观察者模式等,是解决常见问题的最佳实践。 10. **性能优化**: - **算法选择*...

    C.高级参考手册.zip

    书中会阐述如何通过类定义对象,如何通过继承构建类层次结构,以及虚函数和纯虚函数在实现多态性中的作用。 2. **模板**:C++的模板功能强大,允许创建泛型代码,适用于不同类型的数据。书中会解释模板类和模板函数...

    PP

    8. **多态性**:C++支持虚函数和纯虚函数,实现接口多态和实现多态,是面向对象编程的重要特性。 9. **命名空间**:为了避免命名冲突,C++引入了命名空间,可以将相关的一组标识符组织在一起。 10. **C++11及以后...

    2号

    C++通过虚函数和纯虚函数实现运行时多态,增强了代码的灵活性和扩展性。 7. **模板**:C++模板用于创建泛型代码,可以应用于多种数据类型,提高了代码的通用性。 8. **异常处理**:C++提供了try-catch语句来处理...

    大厂面试系列二.pdf

    虚函数和纯虚函数在C++中用于实现多态,虚函数允许派生类重写基类的方法;纯虚函数是抽象类中没有实现的虚函数,它要求派生类必须提供实现。 menset()函数是C语言中的内存设置函数,它将一块内存区域中的每个字节都...

Global site tag (gtag.js) - Google Analytics