C++ Can';t将函数定义包含到另一个源文件中
各位晚上好,, 我现在正在学习C++课程,老师希望我把函数定义包含到另一个主体中。但是,每次我这样做时,都会出现以下错误:C++ Can';t将函数定义包含到另一个源文件中,c++,C++,各位晚上好,, 我现在正在学习C++课程,老师希望我把函数定义包含到另一个主体中。但是,每次我这样做时,都会出现以下错误: Severity Code Description Project File Line Suppression State Error LNK2005 "unsigned int speed" (?speed@@3IA) already defined in Sourcjhkhje.obj Project4 C:\Users\muham
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
我所需要做的就是将函数定义移到一个源中,将main移到另一个源中。有人知道是什么导致了这个问题吗
这些就是我的文件的样子
标题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;
资料来源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);
}
#包括“BicycleLibIncludes.h”
#包括“BicyclePrototypes.h”
/*无效设定速度(尺寸/sp)
{
//cout>sp;
如果((sp>=10)&&(sp),请做一个。我们不需要看到明显与问题无关的一堆代码。您不应该在头文件中定义函数。
#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);
}
#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!";
}
}