In my A.h file:
class A{
private:
unsigned short PC;
public:
A():PC(0){}
virtual ~A(){}
virtual void execute(unsigned short PC)=0;
};
You wrote B() constructor without paranthesis , plus you have 2 B() default constructors, plus one of them is virtual(not good), plus when you execute a->execute, again you need paranthesis with an argument, because it is a function:
Try this:
#include
using namespace std;
class A{
private:
unsigned short PC;
public:
A():PC(0){}
virtual ~A(){}
virtual void execute(unsigned short PC)=0;
};
class B:public A{
private:
int status;
bool exe;
public:
B():status(0),exe(false){}
//virtual B(){}
void execute (unsigned short PC);
};
void B::execute (unsigned short PC){
cout << "Run";
}
class Functions{
public: int status;
Functions():status(1){} // this is a constructer
void run(A *a);
};
void Functions::run (A *a){
a->execute(1);
}
int main(int args, char**argv){
A *a;
B b;
a = &b;
Functions f;
f.run(a);
return 1;
}