Archived

This topic is now archived and is closed to further replies.

emileej

Override of parent function

Recommended Posts

class A{
public:
void foo();
};
class B:public A{
public:
void foo();
void bar();
}

A *c=new B();
c->foo();
Is it just me or should the function call not call the foo() defined in B? In some of my code, the foo defined in A is called in stead and that doesnt make much sense to me.

Share this post


Link to post
Share on other sites
when you want a member function to be "replaced" by derived classes'' functions, use the keyword "virtual" in front of the declaration:

class A
{
public:
virtual void foo();
};

class B: public A
{
public:
void foo();
void bar();
}

A *c=new B();
c->foo();

Share this post


Link to post
Share on other sites