Я запускаю модель ценообразования опционов, которая дает четыре значения для четырех различных параметров.Проблемы с перегрузкой функций C++
class EuroOption
{
private:
double S; //underlying stock price
double X; //strike price
double sigma; //volatility
double T; //time to expiration
double r; //risk-free rate
double b; //cost of carry
public:
EuroOption(); //default constructor
~EuroOption(); //destructor
EuroOption(const EuroOption& eo); //copy constructor
EuroOption& operator = (const EuroOption& source); //assignment operator
EuroOption(vector<double> Batch1);
EuroOption(vector<double> Batch2); //this is the error: redeclaration
//EuroOption(vector<double> const Batch3);
//EuroOption(vector<double> const Batch4);
Вот исходный материал из .cpp:
EuroOption::EuroOption(vector<double> Batch1) : S(60), X(65), sigma(0.30), r(0.08), T(0.25), b(r)
{
}
EuroOption::EuroOption(vector<double> Batch2) : S(100), X(100), sigma(0.20), r(0), T(1), b(r)
{
}
Ошибки я получаю это «конструктор не может быть повторно объявлен». Но мои функции имеют разные аргументы (Batch1/Batch2), поэтому я не понимаю, почему это не перегрузка. Вывод для Batch2 также совпадает с выводом 1 (это неверно). Я был бы благодарен за руководство, которое у вас может быть.
Конструкторы имеют точно такой же * тип параметра *. Имя параметров не имеет значения. Как вы можете решить эти два метода во время выполнения? – juanchopanza