Может кто-нибудь, пожалуйста, помогите мне определить, где я иду не так? Я пытаюсь использовать функцию указатели на функции базового классаУказатель на функцию-член ошибки базового класса
ошибка C2064: термин не вычисляется функция, принимающая 0 аргументов на номер строки 30 т.е. * (приложение)()
#include<stdio.h>
#include<conio.h>
#include<stdarg.h>
#include<typeinfo>
using namespace std;
class A{
public:
int a(){
printf("A");
return 0;
}
};
class B : public A{
public:
int b(){
printf("B");
return 0;
}
};
class C : public B{
public:
int(C::*app)();
int c(){
app =&C::a;
printf("%s",typeid(app).name());
*(app)();
printf("C");
return 0;
}
};
int main(){
C *obj = new C();
obj->c();
getch();
}
Try '(это -> * приложение)();' – WhozCraig
Почему вы пытаетесь использовать указатель на функцию базового класса? Есть ли какая-то особая причина, по которой вы не можете просто называть 'A :: a();'? – maditya
@WhozCraig Спасибо большое! получил это –