第一个c++文件和头LNK2019错误

First c++ file and header LNK2019 error

本文关键字:LNK2019 错误 c++ 文件 第一个      更新时间:2023-10-16

这是我第一次有单独的文件和第一次写一个头文件,但是我一直得到相同的错误,我无法修复。以下是文件:

//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中注释掉的类,一切都可以正常工作。但是,只要我试图将Bike类分离到另一个cpp文件中,我就会得到这个错误:

Error 1   error LNK2019: unresolved external symbol "public: int
__thiscall Bike::getTyreDi(void)" (?getTyreDi@Bike@@QAEHXZ) 
Error 2   error LNK1120: 1 unresolved externals

我使用的是Microsoft Visual Studio 2013。如有任何帮助,不胜感激

为什么要定义两次类Bike ?在cpph中,正确的方法是:头

//Bike.h
#ifndef BIKE_H
#define BIKE_H
class Bike{
    public:
        int tyreDiameter;
        int getTyreDi(void);
};
#endif

cpp

//Bike.cpp
#include "Bike.h"
int Bike::getTyreDi(void)
{
  //implementation like return tyreDiameter;
}