zoukankan      html  css  js  c++  java
  • 纯虚函数和抽象类

    1、什么是纯虚函数、什么是抽象类?

    没有函数体的虚函数的纯虚函数。包含纯虚函数的类叫抽象类。

    //举栗子:
    class A {
    private: 
    	int a;
    public:
    	virtual void Print( ) = 0 ;//纯虚函数
    	void fun() { cout << "fun"; }
    };
    

    2、抽象类的特点

    • 抽象类只能作为基类来派生新类使用,不能创建抽象类的对象
    • 抽象类的指针和引用可以指向由抽象类派生出来的类的对象
    • 在抽象类的普通成员函数内可以调用纯虚函数,但是在构造函数或析构函数内部不能调用纯虚函数。(多态可以调用,不是多态就不可以。这也是纯虚函数的作用所在。即可以在多态语句中调用。相当于定义了接口。)
    • 如果一个类从抽象类派生而来,那么当且仅当它实现了基类中的所有纯虚函数,它才能成为非抽象类。否则,它仍是抽象类。

    3、解释上述特点

    class A {
    public:
    	virtual void f() = 0; //纯虚函数
    	void g( ) { this->f( ) ; //ok 程序在这而不会发生错误,这句是多态,因为this一定指向的是一个实现了f()函数的非抽象类对象}
    	A( ){//f( ); //这句不是多态,而f()是纯虚,因此编译错误}
    };
    
    class B:public A{
    public:
    	void f(){cout<<"B:f()"<<endl; }
    };
    int main(){
    	B b;
    	b.g();
    	return 0;
    }
    
  • 相关阅读:
    Dictionary(二)
    LoveTao项目源码共享
    小功能天气预报
    对XML的收集3
    小小练习:对XML的处理
    对XML的收集4
    对XML的收集2
    小小练习:测试获取用户信息接口
    大学生免费自学各种技术网址大全 不要再报班了
    DevComponents.AdvTree 相关笔记
  • 原文地址:https://www.cnblogs.com/lasnitch/p/12764241.html
Copyright © 2011-2022 走看看