Name
virtual specifier — Polymorphic function specifier or shared base class
Synopsis
function-specifier := virtual base-modifiers ::= virtual [access-specifier] | access-specifier [virtual]
The virtual
keyword has two
unrelated uses; it is used in virtual functions and virtual base
classes:
As a function specifier,
virtual
can be used only with a nonstatic member function. It makes the function and class polymorphic. A virtual function can be declared with=
0
after the function header, which means the function is abstract. You cannot create an instance of a class with an abstract function; instead, a derived class must override the function. You can create an instance of the derived class.Using
virtual
as a base-class modifier means the base class subobject is shared when it is used more than once in an inheritance graph.
Example
struct shape {virtual
void draw(canvas&) = 0;virtual
void debug( ); }; struct square :virtual
shape {virtual
void draw(canvas&);virtual
void debug( ); };
See Also
class
, declaration, Chapter 6
Get C++ In a Nutshell now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.