Featured post
polymorphism - C++ virtual functions implementation outside the class -
i new c++. while trying sample polymorphism code, found base class virtual function definition in derived class possible when defined within derived class or outside declaration in derived class.
following code gives error:
class b { public: virtual void f(); }; void b::f() { std::cout<<"b::f"; } class d : public b { public: void f2() {int b;} }; // error: no "void d::f()" member function declared in class "d" void d::f() { std::cout<<"d::f"; }
it works if declare f() inside d. wondering why need explicitly declare function again when declared in base class. compiler can signature base class right?
thanks in advance..
you can't add members class outside of class definition. if want d
have override b::f
have declare inside class definition. rules.
declaring member in base class doesn't automatically give derived classes identical member. inheriting base gives derived class members of base class can choose whether override, hide or add base classes members have indicate choice override in class definition declaring overriding function.
- Get link
- X
- Other Apps
Comments
Post a Comment