В конструкции

сост идентификатор : public opt typedef-имя

typedef-имя должно означать ранее описанный класс, назваемый базовым классом для описываемого класса. Говорится, что последний выводится из предшествующего (является проиводным от него). По поводу смысла public см. #8.5.9. На члены базового класса можно ссылаться так, как если бы они были членами производного класса, за исключением тех случаев, кода имя базового члена было переопределено в производном класе; в этом случае для ссылки на скрытое имя можно использвать операцию :: (#7.1). Производный класс сам может использоваться в качестве базового класса. Невозможно стристь производные от union (#8.5.13). Указатель на производный класс может неявно преобразовываться в указатель на открытый

базовый класс (#6.7).

Для объектов класса, производного от класса, для которго была определена operator= (#8.5.11), присваивание неявно не определено (#7.14 и #8.5)

Например:

class base (* int a, b; *);

class derived : public base (* int b, c; *);

derived d;

d.a = 1; d.base::b = 2; d.b = 3; d.c = 4;

осуществляет присваивание четырем членам d.