Sí, todos ellos son públicos.
struct A : B {
C c;
void foo() const {}
}
es equivalente a
struct A : public B {
public:
C c;
void foo() const {}
}
Para los miembros, se especifica en el § 11:
Los miembros de una clase definida con la clase de palabras clave son privados por defecto. Los miembros de una clase definida con las palabras clave struct o union son públicas por defecto.
y para las clases de bases de §11.2:
En la ausencia de un acceso-especificador para una clase base, se supone público cuando la clase derivada se define con la clave de clase struct-y se asume privado cuando la clase se define con la clase de clave de clase.
donde las referencias son al estándar C++ 11.
Podría haber probado esto usted mismo con un programa muy pequeño. – Nobody
Consulte este hilo sobre las diferencias entre clases y estructuras en C++ http://stackoverflow.com/questions/92859/what-are-the-differences-between-struct-and-class-in-c –
@ Nadie: pero entonces él confiaría en que su compilador no tenga errores :) –