Трудно описать без кода, так вот: Я пытаюсь прототипировать объект (b) в заголовочный файл другого (a), а затем в конструкторе (a) вызвать конструктор (b) и передать его значения, поэтому я могу затем использовать методы b, которые зависят от его конструктора и значений, переданных ему, но способ, которым делает im, дает: красный подчеркивается в открытой скобке ценообразования конструктор говорит: «для monteCarlo не существует конструктора по умолчанию», а затем на следующей строке m подчеркивается красным: «вызов объекта типа класса без соответствующего оператора() или функции преобразования типа« указатель на функцию »». Любой другой критик моей программы очень приветствуется, я пытаюсь научиться программировать и хорошо.Как инициализировать элемент с помощью его параметризованного конструктора
в файле pricing.cpp я есть:
#include "pricing.h"
#include <math.h>
#include <vector>
pricing::pricing(void)
{
m(10,0.0,0.01,50);
}
double pricing::expectedValue(void)
{
expectedExValue = m.samplePaths[2][3]; //yes this isn't an expected value,
// its just for illustration purposes/making it compile.
return 0;
}
в pricing.hi есть:
#pragma once
#include "pricing.h"
#include "monteCarlo.h"
class pricing
{
public:
pricing(void);
~pricing(void);
double euroCall();
std::vector<double> samplePathing;
double expectedValue();
monteCarlo m;
};
затем montecarlo.cpp выглядит следующим образом:
#include "monteCarlo.h"
#include "randomWalk.h"
#include <vector>
#include <iostream>
monteCarlo::monteCarlo(int trails, double drift, double volidatity, int density)
{
for (int i = 0; i < trails; i++)
{
std::cout << "Trail number " << i+1 << std::endl;
randomWalk r(drift,volidatity,density);
r.seed();
samplePaths.emplace_back(r.samplePath);
std::cout << std::endl << std::endl;
}
}
monteCarlo::~monteCarlo(void)
{
}
и, наконец, Montecarlo .h:
#pragma once
#include <vector>
class monteCarlo
{
public:
monteCarlo(int, double, double, int);
~monteCarlo(void);
std::vector< std::vector<double> > samplePaths;
};
Добро пожаловать в StackOverflow ! Пожалуйста, рассмотрите заголовок, который описывает проблему немного лучше. Таким образом, вы, вероятно, получите больше внимания и лучших ответов. – Sentry
Нет причин включать заголовок от себя. Я бы удалил #include "pricing.h" из pricing.h. –
Ах да, спасибо, я думаю, что это должно было быть, пока я добавлял файлы заголовков, я начал их не использовать. Попытка лучше поправляться на самом деле программирования, а не просто выполнять работу, так что это процесс обучения :) Спасибо за переименование вопроса тоже, не был уверен, что хороший заголовок –