Это мой первый раз, когда у меня есть отдельные файлы и первый раз пишут заголовочный файл, однако я продолжаю получать ту же ошибку, которую я не могу исправить. Вот файлы:Первый файл и заголовок C++ LNK2019 error
//main.cpp
#include <iostream>
#include "Bike.h"
/*
class Bike{
public:
int tyreDiameter;
int getTyreDi(){
return tyreDiameter;
}
}; */
int main(){
Bike b;
b.tyreDiameter = 50;
std::cout << b.getTyreDi();
while (1){
continue;
}
return 0;
}
//Bike.cpp
class Bike{
public:
int tyreDiameter;
int getTyreDi(void){
return tyreDiameter;
}
};
//Bike.h
#ifndef BIKE_H
#define BIKE_H
class Bike{
public:
int tyreDiameter;
int getTyreDi(void);
};
#endif
Теперь, если у меня есть только один файл и использовать класс, который комментировал в main.cpp все работает отлично. Но как только я пытаюсь отделить класс велосипед в другой файл CPP я получаю эту ошибку:
Error 1 error LNK2019: unresolved external symbol "public: int __thiscall Bike::getTyreDi(void)" ([email protected]@@QAEHXZ) Error 2 error LNK1120: 1 unresolved externals
Я использую Microsoft Visual Studio 2013. Любая помощь будет высоко ценится
Спасибо за быстрый ответ. Итак, из того, что вы говорите, я был бы прав предположить, что заголовочный файл описывает, что класс будет выглядеть синтаксически, а файл cpp просто определяет функции этого класса? – Mick
@ Мик Правильно. Файл заголовка описывает, что должен делать класс, и файл cpp описывает, как это сделать. –
Большое спасибо Jamey. Еще одна вещь, пожалуйста; то, что вы сказали, отлично работает в MSVS2013, однако мне нравится использовать Notepad ++ и компилировать с использованием компилятора командной строки MSVS2013. Когда я пытаюсь выполнить команду 'cl/EHsc main.cpp' (без кавычек), она дает мне ту же ошибку, что и выше. Любые идеи, пожалуйста? – Mick