2016-04-18 2 views
0

У меня есть ошибка (он говорит, что Euro_call недоступен), когда я пытаюсь инициализировать производный класс. Есть ли способ исправить ошибку без существенного изменения кода? Я приветствую любые советы.конструктор производного класса наследования

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

ли вы намереваетесь определить 'main' как класс? – wally

+1

Если вы замените 'class main {' на 'void main() {Euro_call a (2.0); } ', тогда он должен скомпилироваться. – wally

+0

спасибо ^^. Я просто новичок в обучении C++ и не осознал маленькую ошибку. – SungwonAhn

ответ

2

Эта программа не указана entry point.

class main{should beint main() {, и программа может вернуть 0, чтобы указать успешное завершение работы операционной системы.


Существует также избыточными ; в конце:

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

Так the full program, с изменениями в последние 4 строки:

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; 
} 
Смежные вопросы