Я продолжаю получать неподтвержденную внешнюю ошибку от C++ из Visual Studio 2013. Большое спасибо за вашу помощь до сих пор. Я еще больше уменьшил код до следующей формы (но Проблема сохраняется):Неразрешенные внешние переменные C++ с простым определением класса
main.cpp:
#include "Fibonacci.h"
using namespace std;
int main(void){
int RandInteger = 3;
Fibonacci Fib(RandInteger);
}
Fibonacci.h
class Fibonacci{
public:
Fibonacci(int n=0);
protected:
int m_n0, m_n1, m_n;
};
Fibonacci.cpp:
#include "Fibonacci.h"
Fibonacci::Fibonacci(int n){
m_n0 = 0;
m_n1 = 1;
m_n = n;
}
Этот код выдает следующее сообщение об ошибке в Visual Studio 2013:
Ошибка 2 Ошибка LNK1120: 1 неразрешенных внешних C: \ Dropbox \ TODO \ C++ \ экзамен \ Ex2 \ не работает \ Упражнение 2 \ fibo1 \ Fibo1 \ Debug \ Fibo1.exe Fibo1 Ошибка 1 ошибка LNK2019: неразрешенный внешний символ "public: __thiscall Fibonacci :: Fibonacci (int)" (? 0Fibonacci @@ QAE @ H @ Z), на который ссылается функция _main C: \ Dropbox \ TODO \ C++ \ экзамен \ Ex2 \ не работает \ Упражнение 2 \ fibo1 \ Fibo1 \ main.obj Fibo1
I сохраняется, но как только я заменить строку в main.cpp с
Fibonacci Fib();
Т.е. я не передаю целое число конструктору, все работает (ну, он компилируется, ничего не делает, как ожидалось).
Благодарим за помощь! Я действительно все еще застрял.
Являются ли оба файла 'cpp' частью одного проекта? – Angew
Я успешно скомпилировал ваш код в CodeBlocks, но мне пришлось изменить void main на int main. Получается, что void main - VS. – otisonoza
Из любопытства я пробовал его в VS 2013, и он успешно компилируется для меня. – otisonoza