C++头文件和CPP文件

C++ header file and CPP file

我在名为 Phone.h 的头文件中创建了我的 class,现在我有一个 PhoneC.cpp,这是我从 Phone.h 定义我的函数的地方,然后是我的 main.cpp 这是我声明 int main 等等的地方。虽然我收到

的错误
one or more multiply defined symbols found

我不太确定这意味着什么,也没有任何其他人 post 明确解释修复的内容。

Phone.h

#ifndef PHONE_IMEI_API
#define PHONE_IMEI_API

#include <string>
    class Phone {

        public:
            bool checkIMEI(std::string IMEI);
            void sort();
            std::string data[5] = {};
        } Phone;

#endif

PhoneC.cpp

#include "Phone.h";

bool Phone::checkIMEI(std::string IMEI)
{
    int IMEIlength = 15;
    int len, i, mul, sum, m10;
    len = IMEI.length();
    char chksum = IMEI[len];
    i = 0;

    if (len != IMEIlength)
        return false;

    mul = 2; sum = 0;

    for (i = len - 2; i >= 0; i--)
    {
        int currentNumber = static_cast<int>(IMEI[len]);
        if (currentNumber * mul >= 10)
            sum += ((currentNumber * mul) / 10) + ((currentNumber * mul) % 10);
        else
             sum += currentNumber * mul;

       if (mul == 2)
          mul = 1;
       else
          mul = 2;
    }

   m10 = sum % 10;
   if (m10)
       m10 = 10 - m10;


   if (m10 == chksum)
       return true;
   else
       return false;

}

main.cpp

#include <iostream>
#include <iomanip>
#include "Phone.h"
using namespace std;

int main(){

    string imei;

    cout << "Please enter an IMEI" << endl;
    cin >> imei;

    if (Phone.checkIMEI(imei))
    {
        cout << "Hello World";
    }
    return 0;
}

不确定我做错了什么,我尝试按照 this official documentation 的文档进行操作,但仍然没有成功。感谢任何明显的建议,没有完成 C++ 课程

错误的是 Phone 与 class 和对象名称相同。所以我所做的是

#ifndef PHONE_IMEI_API
#define PHONE_IMEI_API

#include <string>
    class Phone {

        public:
            bool checkIMEI(std::string IMEI);
            void sort();
            std::string data[5] = {};
        };

#endif

PhoneC.cpp

#include "Phone.h";

bool Phone::checkIMEI(std::string IMEI)
{
    int IMEIlength = 15;
    int len, i, mul, sum, m10;
    len = IMEI.length();
    char chksum = IMEI[len];
    i = 0;

    if (len != IMEIlength)
        return false;

    mul = 2; sum = 0;

    for (i = len - 2; i >= 0; i--)
    {
        int currentNumber = static_cast<int>(IMEI[len]);
        if (currentNumber * mul >= 10)
            sum += ((currentNumber * mul) / 10) + ((currentNumber * mul) % 10);
        else
             sum += currentNumber * mul;

       if (mul == 2)
          mul = 1;
       else
          mul = 2;
    }

   m10 = sum % 10;
   if (m10)
       m10 = 10 - m10;


   if (m10 == chksum)
       return true;
   else
       return false;

}

main.cpp

#include <iostream>
#include <iomanip>
#include "Phone.h"
using namespace std;

int main(){
    Phone phone;
    string imei;

    cout << "Please enter an IMEI" << endl;
    cin >> imei;

    if (phone.checkIMEI(imei))
    {
        cout << "Hello World";
    }
    return 0;
}

这似乎奏效了。如果对我做错了什么以及为什么有任何建议。请post回答。或者我将其标记为正确。 -_-