Es que el struct de C++ no es exactamente igual al de C.
El de C++ si contempla tener zona pública y zona privada.
En este aspecto, la diferencia entre struct y clase en C++ es que si no especificas, en el struct los miembros y métodos serán públicos por defecto, y en las clases serán privados.
Mira esto:
Código C++:
Ver originalclass A
{
int a;
};
struct B
{
int b;
};
int main( )
{
A algo;
B otroalgo;
algo.a=9;
otroalgo.b=10;
}
Si intentas compilarlo se quejará porque estás intentando acceder al miembro a de la clase A que es privado. Sin embargo no hay problema en acceder al miembro de la clase B.
Por cierto, no me he leído este hilo tan extenso, pero por si te sirve de algo, te digo una idea aproximada de lo que es un constructor.
Imagina una caja con piezas de Lego. La caja es la clase o estructura, y las piezas son los miembros (variables u objetos) de la clase.
Con esas piezas tú puedes hacer muchas cosas, pero te interesa darles una forma determinada, para tener un objeto determinado que haga lo que tu realmente quieres obtener.
Entonces es donde entra el juego el constructor. Es como coger un puñado amorfo de piezas y darles una forma, pasando de ser piezas sueltas a una figura.
Igualmente coges los miembros de la clase/struct y los dispones de tal forma que llegues a tener un objeto.
Es una idea un poco tonta, pero si te puede valer....
Saludos