Or simply put
can I do some thing like
class A {
public:
virtual void foo() = 0;
};
class B {
public:
A *a;
b(){
a = new A() { vo
No. Everything in C++ has to be defined before it can be used. In your case, since you want to override A::foo(), you have to derive a new class, and then B can instantiate that class, eg:
class A
{
public:
virtual void foo() = 0;
};
class A1 : public A
{
public:
void foo() { printf("hello"); }
};
class B
{
public:
A *a;
B()
{
a = new A1();
}
};