大家晚上好 我现在正在上c ++课,老师希望我将函数定义包含到另一个主函数中。但是,每次执行此操作时,都会出现此错误:
Severity Code Description Project File Line Suppression State
Error LNK2005 "unsigned int speed" (?speed@@3IA) already defined in Sourcjhkhje.obj Project4 C:\Users\muhammad\source\repos\Project4\Project4\TestBicycle.obj 1
Severity Code Description Project File Line Suppression State
Error LNK1169 one or more multiply defined symbols found Project4 C:\Users\muhammad\source\repos\Project4\Debug\Project4.exe 1
我要做的就是将函数定义移到一个源中,将主定义移到另一个源中。有人知道导致此问题的原因吗?
这些就是我的文件。
标题1:
#pragma once
size_t speed(0);
size_t GetSpeed();
const size_t MINspeed(10);
const size_t MAXspeed(40);
标题2:
#pragma once
#include <iostream>
#include <iomanip>
using namespace std;
标题3:
#include "BicycleLibIncludes.h"
void SetSpeed(size_t sp);
void DefaultSetSpeed(size_t s);
void DistanceTravelled(size_t x);
size_t GetSpeed();
size_t GetMinSpeed();
size_t GetMaxSpeed();
void GetSelectedSpeed();
源1:
#include "BicycleLibIncludes.h"
#include "BicyclePrototypes.h"
/*void SetSpeed(size_t sp)
{
//cout << "Enter the current speed:";
//cin >> sp;
if ((sp >= 10) && (sp <= 40))
{
speed = sp;
}
else
{
cout << "This value is too high/low!";
}
}*/
size_t GetSpeed()
{
return (speed);
}
size_t GetMinSpeed()
{
return size_t(MINspeed);
}
size_t GetMaxSpeed()
{
return size_t(MAXspeed);
}
void DefaultSetSpeed(size_t s = 20)
{
speed = s;
}
void GetSelectedSpeed()
{
string speedunit;
while (true)
{
cout << "Enter M or K for mph or kmh respecitvely. Hit anything else to quit.";
cin >> speedunit;
if (speedunit == "M" || speedunit == "K")
{
break;
}
else
{
continue;
}
}
if (speedunit == "M")
{
cout << speed;
}
if (speedunit == "K")
{
double toKmPerHour = 1.61;
double speedinKmPerHour = speed * toKmPerHour;
cout << speedinKmPerHour << "\n";
std::cout << setprecision(3) << speedinKmPerHour << "\n";
cout << static_cast<int>(speedinKmPerHour) << "\n";
cout << static_cast<int>(speedinKmPerHour + 0.5) << "\n";
cout << floor(speedinKmPerHour) << "\n";
cout << ceil(speedinKmPerHour) << "\n";
}
}
void DistanceTravelled(size_t x)
{
static size_t accessCounter;
static int s;
cout << "Total distance for all trips so far: " << s << "\n";
s += x;
cout << "distance travelled for this trip was:" << x;
cout << "\nTotal distance for all trips so far: " << s << "\n";
s += x;
accessCounter++;
cout << "Number of times you've used this program:" << accessCounter;
}
int main()
{
DefaultSetSpeed();
cout << GetSpeed() << "\n";
DefaultSetSpeed(28);
cout << GetSpeed() << "\n";
cout << "Enter the speed you want to set:";
size_t userinput;
cin >> userinput;
SetSpeed(userinput);
cout << "Current Speed = " << GetSpeed()
<< "\nMAXspeed = " << GetMaxSpeed()
<< "\nMINspeed = " << GetMinSpeed() << "\n";
system("pause");
system("cls");
GetSelectedSpeed();
cout << "First trip:\n";
DistanceTravelled(5);
cout << "\nSecond trip:\n";
DistanceTravelled(10);
cout << "\nThird trip:\n:";
DistanceTravelled(15);
}
源2 :(这只是一个测试)
#include "BicycleLibIncludes.h"
#include "BicyclePrototypes.h"
void SetSpeed(size_t sp)
{
//cout << "Enter the current speed:";
//cin >> sp;
if ((sp >= 10) && (sp <= 40))
{
speed = sp;
}
else
{
cout << "This value is too high/low!";
}
}
谢谢。