【发布时间】:2014-01-23 16:34:33
【问题描述】:
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)
所以我认为问题出在其他地方,有什么想法吗?
【问题讨论】:
-
错误的确切描述是什么?
-
我添加了确切的描述,谢谢。
-
@YochaiTimmer 我这样做了,但它不起作用:(
-
您是否包含
以获得 std::ostream? -
@TonyTheLion 是的,当我删除“虚拟”时它可以工作!
标签: c++ oop visual-c++ visual-studio-2008