Este es mi código de ejemplo:Llamando al constructor de otra clase a través de la lista de Inicialización. Tener problemas
#include <iostream>
using namespace std;
class Base
{
public:
Base (int v, char z) {x=v;y=z;};
int x;
char y;
};
class Bar
{
public:
Bar(int m, char n):q(m),s(n),base(q,s){};
Base base;
int q;
char s;
};
int main()
{
Bar barObj(5,'h');
cout << barObj.base.x << barObj.base.y << endl;
return 0;
}
¿Por qué recibo una potencia de 0
? http://ideone.com/pf47j
También, en general, ¿cuál es el método correcto para crear un objeto miembro de otra clase y llamar al constructor de ese objeto, como se hizo anteriormente con la base del objeto de class Base
, dentro class Bar
?
'Base base;' no 'Base base (int v, char z);'. Lee un libro apropiado. –
El código en su enlace es diferente al código que tiene sobre – mathematician1975
Además de lo que dijo Cat Plus Plus, necesita usar 'm' y' n'. 'q' y' s' no se han inicializado antes de construir 'base'. – IronMensan