Неразрешенные внешние элементы в первой строке

При попытке компиляции этого кода мне выдает какие-то две странные ошибки, что указывают на первую строку. Как решать их - ума не приложу, а решения этой проблемы нигде не нашел, поэтому в отчаянии заливаю его сюда :,). Прошу прощения, если мои комментарии кому-то будут резать глаз: мне было слегка не до грамматики в тот момент. Сами ошибки:

  1. LNK2019 ссылка на неразрешенный внешний символ "double __cdecl question1(int,double)" (?question1@@YANHN@Z) в функции "class std::vector<double,class std::allocator<double> > __cdecl add(class std::vector<double,class std::allocator<double> >,int,int,double)" (?add@@YA?AV?$vector@NV?$allocator@N@std@@@std@@V12@HHN@Z).
  2. LNK1120 неразрешенных внешних элементов: 1
#include <iostream>
#include <vector>
#include <math.h>
#include <random>

using namespace std;

/// func ///
double question1(int a, double b);
void output(vector<double> v);
vector<double> add(vector<double> v, int size);

double question1(double a, double b) // first question 
{
    try
    {
        throw (3 * a * pow(b, 2) - pow(b, 3)); // checks denominator
    }
    catch (double check)
    {
        if (check != 0) // if denominator isn't a zero returns answer 
        {
            return (pow((a + b), 3) - (pow(a, 3) - 3 * pow(a, 2) * b) / check);
        }
        else // if denominator is a zero doesn't return anything but output a error message
        {
            return 0;
            cout << "ERROR 001 : Zero in the denominator." << endl;
        }
    }
}

void output(vector<double> v) // output vector
{
    cout << "*----------Start----------*" << endl;
    for (int i = 0; i <= int(v.size()); i++)
    {
        cout << i << ". Answer is: " << v[i] << endl;
    }
    cout << "*----------End----------*" << endl;
}

vector<double> add(vector<double> v, int size, int a, double b) // inputs random numbers to q1 and adds it to vector
{
    for (int i = 0; i <= size; i++)
    {
        a += ((-9 + rand() % 9) / 10);
        b += ((-9 + rand() % 9) / 10);
        v.push_back(question1(a, b));
    }
    return v;
}

int main() // main 
{
    int a = 100; double b = 0.001;
    vector<double> answer; // vector where answers collect

    answer.push_back(question1(a, b)); // adds a answer to the vector
    answer = add(answer, 100, a, b);
    output(answer);

    system("pause"); // end program
    return 0;
}

Так же я там немного налажал с обработкой ошибки. Хоть в комментарии и написано, что он ничего кроме сообщения не возвращает, но это не так. Он возвращает ноль, ибо в противном случае ничего работать не будет. Кто знает, как это можно реализовать без костылей - отпишитесь, пожалуйста, а то переписывать ту часть не хочется.

скрин компилятора


Ответы (0 шт):