Questo è il mio codice di esempio:Chiamare il costruttore di un'altra classe tramite l'elenco di inizializzazione. Avendo problemi
#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;
}
Perché mi appare una potenza di 0
? http://ideone.com/pf47j
Inoltre, in generale, qual è il metodo giusto per creare un oggetto membro in un'altra classe e chiamare il costruttore di tale oggetto, come è stato fatto in precedenza con base oggetto class Base
, all'interno class Bar
?
'Base di base;' non 'Base di base (int v, char z);'. Leggi un buon libro. –
Il codice nel tuo link è diverso dal codice che hai sopra – mathematician1975
Oltre a ciò che ha detto Cat Plus Plus, devi usare 'm' e' n'. 'q' e' s' non sono stati inizializzati prima di costruire 'base'. – IronMensan