请问C++有抽象类指针吗?
请问C++有接口类指针吗?
如果有,那么抽象类的指针能指向非抽象的子类对象吗?
抽象类或接口类就是做这个用的
#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
3 回答2k 阅读✓ 已解决
2 回答3.9k 阅读✓ 已解决
2 回答3.2k 阅读✓ 已解决
1 回答3.2k 阅读✓ 已解决
1 回答2.7k 阅读✓ 已解决
3 回答3.4k 阅读
1 回答1.6k 阅读✓ 已解决
你是比对java来提问的么?
一个类全是纯虚函数就相当于java的接口,这种类的指针你可以理解为接口类指针
一个类部分是纯虚函数就相当于java的抽象类,这种类的指针你可以理解为抽象类指针
c++其实没有接口概念吧,我是从java转c++的 看你问的感觉也像
最后一个问题,可以,这种指向经常用来实现多态