If this is your first visit, be sure to
check out the FAQ by clicking the
link above. You may have to register or Login
before you can post: click the register link above to proceed. To start viewing messages,
select the forum that you want to visit from the selection below.

When I call printStuff, the DerivedClass's function gets called. Now, if I remove the const part from the DerivedClass's printStuff function, we call the BaseClass's printStuff function. Can anyone explain why this happens? I tried a Google search, but not quite sure how to word this.

Re: Base Class's function gets called

If you do not declare the member function as const, then you are overloading, not overriding, the member function to have a non-const version. Thus, the polymorphism that comes with an override does not apply. I expect that the base class' version of the member function becomes hidden in the derived class (i.e., you would get an error if you tried calling it with a const DerivedClass object).

Re: Base Class's function gets called

No, it wasn't. I just said "...Now, if I remove the const part from the DerivedClass's printStuff function...". If I leave the code the way it the way is, things behave as I would expect them to. But, if I remove the const from the DerivedClass's function, then the BaseClass's printStuff function is called. I think laserlight's explanation makes sense.