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回答。或者我将其标记为正确。 -_-
我在名为 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回答。或者我将其标记为正确。 -_-