Javainterface as generalized objecttype Concept in C++
我想在C++中使用抽象类作为接口,理由如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | class Base{ public: virtual bool foo() = 0; int getValue() {return this->value;}; int compare(Base other) { //calculate fancy stuff using Base::foo() and other given stuff through inheritance return result; } protected: int value; }; class TrueChild: public Base{ public: TrueChild(int value): Base() { this->value = value;} bool foo() {return 1;} //do stuff with value }; class FalseChild: public Base{ public: FalseChild(int value): Base() { this->value = value;} bool foo() {return false;} //do other stuff with value }; |
但是我不能在compare方法中将base作为类型传递,因为它是一个抽象类,我不能实例化它。C++以EDCOX1为0。我如何创建一个方法来获取任何类类型的参数,该类实现了基类?
我知道它有点类似于这样的问题,这个或这个,但是这些答案没有帮助,因为它们不讨论如何以任何方式使用接口作为通用类型。
谢谢:
怎么样
1 | int compare(Base const& other); |
然后将其用作:
1 | trueChild.compare(falseChild); |