对使用 Code::Block 的类方法的未定义引用
Undefined reference to class methods using Code::Blocks
来自
Java/Eclipse世界,只是想复习一下C++并使用Code::Blocks。
正在制作一个基本类,并且在将其实现到我的主文件中时遇到问题。
获得"对'Time::Time(int, int, int)'的未定义引用",并对我的主文件中使用的所有方法进行未定义的引用.cpp错误。
尝试重新生成,尝试将文件重新添加到控制台项目。不知道问题是什么。我对 Code::Blocks 相当生疏,所以也许这是显而易见的,任何帮助将不胜感激。
主.cpp
#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;
}
时间.h
#ifndef TIME_H
#define TIME_H
class Time
{
public:
Time(int h, int m, int s);
Time(int h, int m);
Time(int h);
Time();
virtual ~Time();
void setTime(int h, int m, int s);
void setTime(int h, int m);
void setTime(int h);
void addHours(int h);
void addMinutes(int m);
void addSeconds(int s);
void displayTime();
int getHours();
void setHours(int h);
int getMinutes();
void setMinutes(int m);
int getSeconds();
void setSeconds(int s);
protected:
private:
int hours;
int minutes;
int seconds;
};
#endif // TIME_H
时间.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::void setTime(int h)
{
hours = h;
minutes = 0;
seconds = 0;
}
它应该是
void Time::setTime(int h)
{
hours = h;
minutes = 0;
seconds = 0;
}
Time.cpp 由于错误而无法编译,然后链接器找不到任何符号。
相关文章:
- 对类的未定义引用,常见答案尚未解决
- 类中未定义的函数
- C++对类的未定义引用(1 个标头 2 cpp)
- CMake 对类的未定义引用
- ImportError:在python中导入切换的c ++类时未定义的符号
- 对子目录中类的未定义引用
- 共享库中非模板基的模板子类导致未定义的符号类型信息'class'链接错误
- 将不相关类型的对象reinterpret_cast空类是未定义的行为吗?
- 错误访问另一个插件中的类(错误:未定义的引用)
- 对类的未定义引用
- 基类的未定义模板参数
- C 标题和类文件 - 未定义的参考
- 编译器说模板类中的方法未定义,除非我将其设为虚拟
- 对类的未定义引用
- 对"类:<Type>:类"的未定义引用
- 对派生类的未定义引用
- 派生类错误:未定义的类型
- 错误:标识符类名未定义?为我在文件中创建的所有类获取此内容
- 嵌套类,未定义引用,静态方法
- .cpp文件中模板类的非模板方法-未定义的引用