C号问题:
让我说我想使用一个抽象类和多个方法作为接口:
// this is AbstractBase.hpp class AbstractBase { public: virtual int foo() = 0; virtual int bar() = 0; // imagine several more pure virtual methods are here };
我想要一个实现所有虚拟方法的子类,我不想在头文件中实现它们,而是在它们的实现文件中.
我真的要在这样的子类声明中再次声明所有这些方法吗?我认为应该有一种方法来避免这一步(来自ObjC,Java)
// this is Concrete.hpp class Concrete : public AbstractBase { public: int foo(); int bar(); // need to copy paste all the method declarations here again...? why? };
// this is Concrete.cpp #include "Concrete.hpp" int Concrete::foo() { return 666; } // etc...
但是无法弄清楚如何,而不必在每个子类中重新声明该接口.