Si creo una clase dentro de otra clase, los datos miembros de la clase interna también le pertenecen a la clase externa.?
Si yo creo una función miembro constante en la clase externa, puedo modificar las variables miembro de la clase interna o no?
Otra cosa porqué si yo al declarar el nombre de una clase en la función principal, digamos que es const las demas funciones tienen que ser const porqué si no da error, a que se debe esto? Pude concluir que es para no modificar los valores que le pase o simplemente le digo al compilador que esa variable solamente trabajara con las funciones const. Un ejemplo claro seria este:
Código:
#include <iostream>
using std::cout;
using std::endl;
class Prueba
{
private:
int x;
public:
Prueba(int x = 0){escribe(x);}//constructor
int obtiene() const{return x;}//obtiene es const
int obtiene2(){return x;}
void escribe(int y){x = y;}
// void escribe(int y) const{x = y;}
};
int main()
{
Prueba num1;
const Prueba num2(25);
cout << num2.obtiene();
// cout << num2.obtiene2(); //error obtiene2 no es const.
num1 = num2;
cout << num1.obtiene2(); //permitido num1 no es const.
}
Para resumir la tercera pregunta que dudo haya quedado clara xD Ya como les enseñe este código(No recuerdo de donde lo saque creo que de un blog >__<) En fín, le estoy diciendo al compilador que 'num2' trabajara únicamete con las funciones miembro constantes de la clase Prueba?