zoukankan      html  css  js  c++  java
  • 纯虚函数

    正常情况下纯虚函数类似于java中的抽象函数,仅仅提供接口,不提供定义,由不同的子类提供不同的实现,从而表现出多态。可是也有两个特殊的情况。

    情况一:纯虚函数也是能够有实现体的。仅仅是因为不能建立基类的对象,因此不能直接调用,可是能够在子类中通过作用域解析操作符静态调用。因此能够在里面加入一些公共的代码。比如:

    class Base
    {
    	public:
    		virtual void fun1()=0;
    };
    void Base::fun1()
    {
    	cout << "Base::fun1"<<endl;
    }
    class Derived : public Base
    {
    	public:
    		virtual void fun1()
    		{
    			Base::fun1();//静态调用
    			cout << "Derived::fun1"<<endl;
    		}
    };
    int main()
    {
    	Base* pb= new Derived;
    	pb -> fun1();
    	delete pb;
    }


    情况二:对于纯虚析构函数。它和普通的纯虚函数不同的地方在于它必需要提供实现体,这种原因在于,纯虚析构函数终于需要被调用。以析构基类对象,假设不提供该析构函数的实现。将使得在析构过程中,析构无法完毕而导致析构异常的问题。从而在链接阶段错误发生,所以,好的实现方案就是不要把虚析构函数设置为纯虚的





  • 相关阅读:
    jQuery常用方法
    Orcle数据库恢复
    PLSQL Developer操作
    oracle 11g 报错记录
    oracle 11g 安装及网络配置
    微信公众平台开发(二)
    微信公众平台开发(一)
    SQL Server 索引
    Ext.NET MVC 配置问题总结
    XML序列化和反序列化
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/5159981.html
Copyright © 2011-2022 走看看