C++头文件和 CPP 文件
C++ header file and CPP file
我已经在一个名为Phone.h
的头文件中创建了我的类,现在我有一个PhoneC.cpp
,这是我从Phone.h
定义函数的地方,然后是我的main.cpp
,这是我声明int main的地方,依此类推。虽然我收到一个错误
one or more multiply defined symbols found
我不太确定这意味着什么,也没有任何其他帖子解释修复程序是否足够公然。
电话.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
电话C.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;
}
主.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;
}
不确定我做错了什么,我尝试按照此官方文档中的文档进行操作,但仍然没有运气。 感谢您的任何明显建议,但没有完成C++课程
错误的是与类和对象名称相同的Phone
。所以我所做的是
#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
电话C.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;
}
主.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;
}
这似乎奏效了。如果有任何关于我为什么做错和做错什么的建议。请发布答案。或者我会将其标记为正确。-_-
相关文章:
- .cpp和.h文件中的模板专用化声明
- 为什么两个不同的未命名名称空间可以共存于一个cpp文件中
- 命名空间中具有.h和.cpp文件的类
- 为什么我的主文件.cpp不打印头文件中的任何内容
- 生成文件错误 - 找不到文件 - *.cpp
- 如何在文件.cpp gtkmm中声明小部件
- 没有实现文件(.cpp)的派生类
- 如何使用"CMakeLists.txt"中的add_library将整个文件(.cpp,.h等)包含在目录中
- 如何在Linux / Windows操作系统上使用文件*.cpp一步编译下面的代码
- 关于 Linux .so 文件无法链接到主文件.cpp文件
- 文件.cpp从Windows到Linux
- Ubuntu C++ 编译器错误: g++: 错误: 文件.cpp: 没有这样的文件或目录
- 如何将文件.cpp编译为本机编译
- 使用模板类时,似乎无法包含除 main 以外的任何 cpp 文件.cpp
- 无法编译C++文件.cpp。C++98模式
- 为什么C++头文件不需要包含实现文件 (.cpp)
- 如何访问位于独立文件(.cpp)中的非成员函数
- 如何在Visual Studio Code中通过键盘快捷键切换头文件/cpp文件
- 如何将数据从stringstream写入文件(CPP)
- 为什么filestream不把空白写入文件cpp ?