C ++在重载运算符时出错,未定义

时间:2015-03-01 09:15:07

标签: c++ compiler-errors operators

我收到此错误

myDate.cpp:(.text+0x160): undefined reference to `myTime::operator==(myTime const&) const'

这是我第一次使用头文件和重载运算符编码,所以任何帮助将不胜感激。这是我的myDate代码:http://pastebin.com/i4CLvWBS标题:http://pastebin.com/ULircg5q

错误来自theTime==date.getTime());

这是我重载运算符的一个例子

bool myDate::operator==(const myDate &date) const
{
  return (year == date.getYear() && 
          month==date.getMonth() && 
          day==date.getDay() && 
          theTime==date.getTime());
}

时间来自一个名为myTime的不同文件,我不知道如何正确定义运算符,以防万一你将新的myTime帮助我解决这个问题:vWr5zwDq只是在pastebin中跟进

我还确保myTime.cpp已正确链接,因为myTime.cpp链接到myTime.h,链接到myDate.h,myDate.h链接到myTime.cpp,当我卸载#include "myTime.h"时从myDate.h我的代码打破了该文件。

#include "myTime.h"  #include "myTime.h"   #include "myDate.h"
myTime::myTime()     class myDate()        myDate::myDate()

1 个答案:

答案 0 :(得分:0)

您还必须为您的班级bool operator==(myTime const&) const;声明/定义适当的myTime

如果您这样做,请确保myTime.cpp与其他代码正确链接。

有关此错误消息的详细信息以及链接的实际含义,请参阅此处:
What is an undefined reference/unresolved external symbol error and how do I fix it?