찾다

 >  Q&A  >  본문

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

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

巴扎黑巴扎黑2803일 전1145

모든 응답(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
  • 취소회신하다