搜尋

首頁  >  問答  >  主體

C++里有抽象类指针吗?

请问C++有抽象类指针吗?
请问C++有接口类指针吗?
如果有,那么抽象类的指针能指向非抽象的子类对象吗?

巴扎黑巴扎黑2804 天前1148

全部回覆(4)我來回復

  • 阿神

    阿神2017-04-17 12:09:06

    你是比對java來提問的麼?
    一個類別全是純虛函數就相當於java的接口,這種類的指針你可以理解為接口類指針
    一個類部分是純虛函數就相當於java的抽象類,這種類的指針你可以理解為抽象類別指標

    c++其實沒有介面概念吧,我是從java轉c++的 看你問的感覺也像

    最後一個問題,可以,這種指向常用來實現多態

    回覆
    0
  • PHP中文网

    PHP中文网2017-04-17 12:09:06

    c++中的純虛類別可以理解為抽象類別~這種類別無法實例化,但是可以指向其非純虛類別的子類別實例~

    回覆
    0
  • 怪我咯

    怪我咯2017-04-17 12:09:06

    抽象類別或介面類別就是做這個用的

    #include <iostream>
    using namespace std;
    
    class Base
    {
    public:
        virtual void foo() = 0;
    };
    
    class Child1: public Base
    {
    public:
        virtual void foo() 
        {
            cout << "Child1 foo" << endl;
        }
    };
    
    class Child2: public Base
    {
    public:
        virtual void foo()
        {
            cout << "Child2 foo" << endl;
        }
    };
    
    int main()
    {
        Base *p1 = new Child1();
        p1->foo();
        Base *p2 = new Child2();
        p2->foo();
        return 0;
    }
    

    輸出

    Child1 foo
    Child2 foo
    

    回覆
    0
  • 黄舟

    黄舟2017-04-17 12:09:06

    就是純虛函數啦,你可以百度一些部落格看看

    回覆
    0
  • 取消回覆