我想知道如何使用C ++调用抽象类的递归函数。
//A.h
class A {
public:
virtual void some() = 0 ;
};
//B.h
#include "A.h"
class B : public A {
public:
void some() ;
};
// B.cpp
void B::some(){
system("pause");
} ;
//C.h
#include "B.h"
class C : public B {
public:
static void callF() ;
};
// C.cpp
void C::callF(){
some();
};
我编辑了代码。仍然没有工作。
答案 0 :(得分:1)
在A和B中,该功能应该是公共的或受保护的。
答案 1 :(得分:0)
只需在somefunction()
的正文中使用C::callingF()
,例如
void C::callingF()
{
if (somecondition)
somefunction();
}
如果ptr->somefunction()
是指向某些ptr
或C
的指针,即指向某些B
A
但是,请花几个小时阅读一本关于C ++编程语言的好书。我们几分钟内无法解释。一本书解释得更好......