问题描述
请问C++有抽象类指针吗?请问C++有接口类指针吗?如果有,那么抽象类的指针能指向非抽象的子类对象吗?
问题解答
回答1:你是比对java来提问的么?一个类全是纯虚函数就相当于java的接口,这种类的指针你可以理解为接口类指针一个类部分是纯虚函数就相当于java的抽象类,这种类的指针你可以理解为抽象类指针
c++其实没有接口概念吧,我是从java转c++的 看你问的感觉也像
最后一个问题,可以,这种指向经常用来实现多态
回答2:c++中的纯虚类可以理解为抽象类~这种类无法实例化,但是可以指向其非纯虚类的子类实例~
回答3:抽象类或接口类就是做这个用的
#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 fooChild2 foo回答4:
就是纯虚函数啦,你可以百度一些博客看看

