虚函数未解决的外部错误

时间:2014-01-06 09:48:16

标签: c++ oop visual-c++ visual-studio-2008

MyTask.h

class MyTask
{
   virtual std::ostream& show(std::ostream &os) const ;
};

MyTask.cpp

std::ostream& MyTask::show(std::ostream &os) const
{
os << "Task(" << this->id << "):\t Processing time:" << this->p << "\t Weight:"<< this->w ;
return os;
}

当我在头文件中添加单词virtual时,我得到一个未解决的外部链接错误。我检查了类似的问题,但问题是功能未定义或不是纯虚拟。

编辑: 确切的错误是:

MiniOS.obj : error LNK2001: unresolved external symbol "public: virtual class std::basic_ostream<char,struct std::char_traits<char> > & __thiscall SimOS::MyTask::show(class std::basic_ostream<char,struct std::char_traits<char> > &)const " (?show@MyTask@SimOS@@UBEAAV?$basic_ostream@DU?$char_traits@D@std@@@std@@AAV34@@Z)

所以我认为问题是别的,有什么想法吗?

1 个答案:

答案 0 :(得分:0)

问题在于我将MyTask.cpp文件作为现有项添加到项目中。由于VS不会将MyTask.cpp复制到当前项目,因此我必须从项目中删除该文件,然后将其复制到当前项目并清理然后重建。 谢谢大家的帮助。