2016-04-18 10 views
0

Ich habe einen Fehler (Es heißt der Euro_call ist nicht zugänglich), wenn ich versuche, die abgeleitete Klasse zu initialisieren. Gibt es eine Möglichkeit, den Fehler ohne wesentliche Änderung des Codes zu beheben? Ich begrüße jeden Rat.Vererbung abgeleiteten Klassenkonstruktor

class Euro{ 
protected: 
double S;  // spot price 

public: 
Euro(const double&); 
~Euro(){}; 
}; 

Euro::Euro(const double& _s):S(_s){} 


class Euro_call:public Euro{  
public: 
Euro_call(const double&); 
~Euro_call(){}; 
}; 

Euro_call::Euro_call(const double& _s):Euro(_s){}; 

class main{ 
Euro_call a(2.0); 
} 
+0

Did Sie beabsichtigen, 'main' zu definieren als eine Klasse? – wally

+1

Wenn Sie 'class main {' mit 'void main() ersetzen {Euro_call a (2.0); } 'dann sollte es kompilieren. – wally

+0

Danke ^^. Ich bin nur ein Anfänger beim Lernen von C++ und habe den kleinen Fehler nicht bemerkt. – SungwonAhn

Antwort

2

Dieses Programm fehlt ein entry point.

Die class main{should beint main() {, und das Programm kann 0 zurückgeben, um den erfolgreichen Abschluss des Betriebssystems anzuzeigen.


Es gibt auch eine redundante ; am Ende:

Euro_call::Euro_call(const double& _s) :Euro(_s) {}; 

So the full program, mit Änderungen an den letzten 4 Zeilen:

class Euro { 
protected: 
    double S;  // spot price 

public: 
    Euro(const double&); 
    ~Euro() {}; 
}; 

Euro::Euro(const double& _s) :S(_s) {} 


class Euro_call :public Euro { 
public: 
    Euro_call(const double&); 
    ~Euro_call() {}; 
}; 

Euro_call::Euro_call(const double& _s) :Euro(_s) {} 

int main() { 
    Euro_call a(2.0); 
    return 0; 
} 
Verwandte Themen