Simplicity Simplicity - 2 months ago 16
C++ Question

Default inheritance access specifier

If I have for example two classes

A
and
B
, such that class
B
inherits
A
as follows:

class B: public A


In this case, I'm doing
public
inheritance.

If I write the previous code as follows:

class B: A


What type of inheritance will I be doing here (i.e; public)? In other words, what is the default access specifier?

Just a side question here. Do I call the previous line of codes
statements
? Especially that I remember I read in the C++ Without Fear: A Beginner's Guide That Makes You Feel Smart book that
statements
are that that end with
;
. What do you think about that?

Thanks.

Answer

Just a small addition to all the existing answers: the default type of the inheritance depends on the inheriting type (B), not on the one that is being inherited (A). For example:

class A {};
struct B: /* public */ A {};

struct A {};
class B: /* private */ A {};