使用Code::Blocks对类方法的未定义引用 来自java/Eclipse世界,只想刷C++,使用代码::Boo.< /P>
正在创建一个基本类,但在将其实现到主文件时遇到问题 获取“对'Time::Time(int,int,int)'的未定义引用”以及对main.cpp文件中使用的所有方法的未定义引用错误 尝试重建,尝试将文件重新添加到控制台项目。不知道问题出在哪里。我对Code::Blocks相当生疏,所以可能这是显而易见的,任何帮助都将不胜感激 main.cpp使用Code::Blocks对类方法的未定义引用 来自java/Eclipse世界,只想刷C++,使用代码::Boo.< /P>,c++,codeblocks,header-files,resource-files,C++,Codeblocks,Header Files,Resource Files,正在创建一个基本类,但在将其实现到主文件时遇到问题 获取“对'Time::Time(int,int,int)'的未定义引用”以及对main.cpp文件中使用的所有方法的未定义引用错误 尝试重建,尝试将文件重新添加到控制台项目。不知道问题出在哪里。我对Code::Blocks相当生疏,所以可能这是显而易见的,任何帮助都将不胜感激 main.cpp #include "Time.h" #include <iostream> using namespace std; int main(
#include "Time.h"
#include <iostream>
using namespace std;
int main()
{
//Time current();
Time current(12,0,0);
cout << "Current time." << endl;
current.displayTime();
cout << "\nSet time to 22:29:30." << endl;
current.setTime(22,29,30);
current.displayTime();
cout << "\nAdd 45 minutes." << endl;
current.addMinutes(45);
current.displayTime();
cout << "\nAdd 45 seconds." << endl;
current.addSeconds(45);
current.displayTime();
cout << "\nAdd 1 hour." << endl;
current.addHours(1);
current.displayTime();
return 0;
}
Time.cpp
#include "Time.h"
#include <iostream>
using namespace std;
Time::Time(int h, int m, int s)
{
hours = h;
minutes = m;
seconds = s;
}
Time::Time(int h, int m)
{
hours = h;
minutes = m;
seconds = 0;
}
Time::Time(int h)
{
hours = h;
minutes = 0;
seconds = 0;
}
Time::Time()
{
hours = 0;
minutes = 0;
seconds = 0;
}
Time::~Time()
{
//dtor
}
Time::void setTime(int h, int m, int s)
{
hours = h;
minutes = m;
seconds = s;
}
Time::void setTime(int h, int m)
{
hours = h;
minutes = m;
seconds = 0;
}
Time::void setTime(int h)
{
hours = h;
minutes = 0;
seconds = 0;
}
Time::void addHours(int h)
{
hours += h;
if (hours > 23)
{
hours -= 24;
}
}
Time::void addMinutes(int m)
{
minutes += m;
if (minutes > 59)
{
addHours(minutes / 60);
minutes %= 60;
}
}
Time::void addSeconds(int s)
{
seconds += s;
if (seconds > 59)
{
addMinutes(seconds / 60);
seconds %= 60;
}
}
Time::void displayTime()
{
if (hours < 10)
{
cout << "0" << hours;
}
else
{
cout << hours;
}
cout << ":";
if (minutes < 10)
{
cout << "0" << minutes;
}
else
{
cout << minutes;
}
cout << ":";
if (seconds < 10)
{
cout << "0" << seconds;
}
else
{
cout << seconds;
}
cout << endl;
}
Time::void setHours(int h)
{
if (h >= 0 && h <= 23)
{
hours = h;
}
else
{
cout << "Invalid input!\n";
}
}
Time::int getHours()
{
return hours;
}
Time::void setMinutes(int m)
{
if (m >= 0 && m <= 59)
{
minutes = m;
}
else
{
cout << "Invalid input!\n";
}
}
Time::int getMinutes()
{
return minutes;
}
Time::void setSeconds(int s)
{
if (s >= 0 && s <= 59)
{
seconds = s;
}
else
{
cout << "Invald input!\n";
}
}
Time::int getSeconds()
{
return seconds;
}
#包括“Time.h”
#包括
使用名称空间std;
时间:时间(inth,intm,ints)
{
小时=小时;
分钟=m;
秒=秒;
}
时间::时间(整数h,整数m)
{
小时=小时;
分钟=m;
秒=0;
}
时间::时间(inth)
{
小时=小时;
分钟=0;
秒=0;
}
时间::时间()
{
小时=0;
分钟=0;
秒=0;
}
时间::~Time()
{
//dtor
}
时间::无效设置时间(int h、int m、int s)
{
小时=小时;
分钟=m;
秒=秒;
}
时间::无效设置时间(int h,int m)
{
小时=小时;
分钟=m;
秒=0;
}
时间::无效设置时间(int h)
{
小时=小时;
分钟=0;
秒=0;
}
时间::void addHours(整数小时)
{
小时+=h;
如果(小时数>23)
{
小时-=24小时;
}
}
时间::void addMinutes(int m)
{
分钟+=m;
如果(分钟>59)
{
增加小时(分钟/60);
分钟%=60;
}
}
时间::void addSeconds(int s)
{
秒+=s;
如果(秒>59)
{
增加分钟(秒/60);
秒%=60;
}
}
时间::void displayTime()
{
如果(小时<10)
{
cout类名在方法名之前,而不是在返回类型之前
因此,而不是例如
Time::void setTime(int h)
{
hours = h;
minutes = 0;
seconds = 0;
}
应该是
void Time::setTime(int h)
{
hours = h;
minutes = 0;
seconds = 0;
}
Time.cpp由于错误而无法编译,然后链接器找不到任何符号。我更改了所有这些符号,但仍然得到相同的错误。在进行这些更改之前,您是否看到语法错误?如果没有,则意味着Code::Blocks不会按时调用编译器。cpp。我没有使用Code::Blocks,因此我在这里无法提供真正的帮助。它是st出现了某种代码::块问题。我使用类向导将文件添加到项目中,但创建一个新项目并将所有文件添加到项目中效果良好。无论如何,谢谢。
void Time::setTime(int h)
{
hours = h;
minutes = 0;
seconds = 0;
}