抽象类可以做函数参数 ,可是位啥不能作为返回值,该如何解决
抽象类可以做函数参数 ,可是位啥不能作为返回值
如题
------解决方案--------------------
应该是抽象类的指针或引用吧?
------解决方案--------------------
可以啊。
class A;
class B:public A;
A* foo();
A& foo();
而A foo();应该不可以
反正原理就是:不可以建立抽象类的对象
做为函数参数也应该有这个限制,如返回值。不可用void foo(A oA);
------解决方案--------------------
C++抽象机制本来就是建立在指针和引用上的,抽象基类一般不能生成具体的对象,而是用基类的指针来指向具体的子类,从而获得多态
------解决方案--------------------
抽象类 不可以生成对象 所以只能返回指针了
如题
------解决方案--------------------
应该是抽象类的指针或引用吧?
------解决方案--------------------
可以啊。
class A;
class B:public A;
A* foo();
A& foo();
而A foo();应该不可以
反正原理就是:不可以建立抽象类的对象
做为函数参数也应该有这个限制,如返回值。不可用void foo(A oA);
------解决方案--------------------
C++抽象机制本来就是建立在指针和引用上的,抽象基类一般不能生成具体的对象,而是用基类的指针来指向具体的子类,从而获得多态
------解决方案--------------------
抽象类 不可以生成对象 所以只能返回指针了