LNK 2019尝试使“ <<”运算符过载时出错

asaf92

我有一个MGraph<T>带有成员函数print_relation和一个朋友函数的模板类它是ostream& operator<<(ostream& os, const MGraph<T>& other)

我按照此处的说明进行操作并编写了以下代码:

template<class T>
ostream& MGraph<T>::print_relation(ostream& os) const
{
    for (VertexId i = 0; i < max_size; i++)
    {
        for (VertexId j = 0; j < max_size; j++)
        {
            os << relation[i][j] << ' ';
        }
        os << endl;
    }
    return os;
}
...
template<class T>
ostream& operator<<(ostream& os, const MGraph<T>& other)
{
    os << other.print_relation(os);
    return os;
}

编译时出现以下错误: 1>main.obj : error LNK2019: unresolved external symbol "class std::basic_ostream<char,struct std::char_traits<char> > & __cdecl operator<<(class std::basic_ostream<char,struct std::char_traits<char> > &,class MGraph<bool> const &)" (??6@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@std@@AAV01@ABV?$MGraph@_N@@@Z) referenced in function "void __cdecl exec<bool>(class MGraph<bool> *)" (??$exec@_N@@YAXPAV?$MGraph@_N@@@Z)

它出现4次,一次为每个数据类型(intchardoublebool)。

我做错什么了?

泽雷格斯

在的超载中operator<<,您正在执行此操作

os << other.print_relation(os);

并且由于MGraph<T>::print_relationreturn std::ostream&,这是无效的。operator<<不会以std::ostream&RHS的方式过载

因此,只需删除os <<

template<class T>
ostream& operator<<(ostream& os, const MGraph<T>& other)
{
    other.print_relation(os);
    return os;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

LNK2019编译.cpp时出错

来自分类Dev

尝试在Qt中获取自定义窗口框架时出现LNK2019问题

来自分类Dev

VS2013错误:LNK2019尝试构建ZeroMQ服务器时

来自分类Dev

尝试在Qt中获取自定义窗口框架时出现LNK2019问题

来自分类Dev

尝试重载运算符“ /”时出错

来自分类Dev

使用其他包含目录时发生错误LNK2019 +致命错误LNK1120

来自分类Dev

Rstudio:尝试在数据帧中使用 %in% 运算符时出错

来自分类Dev

LNK2019 glewInit

来自分类Dev

C ++错误LNK 2019

来自分类Dev

OpenSceneGraph LNK2019

来自分类Dev

从模板派生时出现LNK2019错误

来自分类Dev

编译OpenCL文件时出现许多LNK2019错误

来自分类Dev

LNK1104尝试与boost_filesystem * .lib链接时

来自分类Dev

LNK2019带模板

来自分类Dev

LNK2019-Visual Studio 2013-尽管定义了所有符号仍会出错

来自分类Dev

LNK2019-Visual Studio 2013-尽管定义了所有符号仍会出错

来自分类Dev

为DLL实现C ++类时发生错误LNK2019

来自分类常见问题

LNK2019:使用std :: ifstream时未解析的外部符号

来自分类Dev

LNK2019:使用std :: ifstream时未解析的外部符号

来自分类Dev

当在静态方法中使用函数时,LNK2019无法解析的外部出现

来自分类Dev

错误LNK2019:将代码放入cpp文件时出现无法解析的外部符号

来自分类Dev

错误LNK2019:使用SendInput()时出现无法解析的外部符号

来自分类Dev

使用defalt args时在函数_main中引用的错误LNK2019无法解析的外部符号

来自分类Dev

在 Qtcreator 上实例化对象 c++ 时的 LNK2019

来自分类Dev

Qt - LNK2019 在类的成员函数中使用命名空间的函数时

来自分类Dev

Nuget - LNK2019 使用我的一个链接到 nuget 包的项目时

来自分类Dev

LNK1120,LNK2001,LNK2019-无法跟踪原因

来自分类Dev

过载矩阵运算符

来自分类Dev

运算符+左右过载

Related 相关文章

  1. 1

    LNK2019编译.cpp时出错

  2. 2

    尝试在Qt中获取自定义窗口框架时出现LNK2019问题

  3. 3

    VS2013错误:LNK2019尝试构建ZeroMQ服务器时

  4. 4

    尝试在Qt中获取自定义窗口框架时出现LNK2019问题

  5. 5

    尝试重载运算符“ /”时出错

  6. 6

    使用其他包含目录时发生错误LNK2019 +致命错误LNK1120

  7. 7

    Rstudio:尝试在数据帧中使用 %in% 运算符时出错

  8. 8

    LNK2019 glewInit

  9. 9

    C ++错误LNK 2019

  10. 10

    OpenSceneGraph LNK2019

  11. 11

    从模板派生时出现LNK2019错误

  12. 12

    编译OpenCL文件时出现许多LNK2019错误

  13. 13

    LNK1104尝试与boost_filesystem * .lib链接时

  14. 14

    LNK2019带模板

  15. 15

    LNK2019-Visual Studio 2013-尽管定义了所有符号仍会出错

  16. 16

    LNK2019-Visual Studio 2013-尽管定义了所有符号仍会出错

  17. 17

    为DLL实现C ++类时发生错误LNK2019

  18. 18

    LNK2019:使用std :: ifstream时未解析的外部符号

  19. 19

    LNK2019:使用std :: ifstream时未解析的外部符号

  20. 20

    当在静态方法中使用函数时,LNK2019无法解析的外部出现

  21. 21

    错误LNK2019:将代码放入cpp文件时出现无法解析的外部符号

  22. 22

    错误LNK2019:使用SendInput()时出现无法解析的外部符号

  23. 23

    使用defalt args时在函数_main中引用的错误LNK2019无法解析的外部符号

  24. 24

    在 Qtcreator 上实例化对象 c++ 时的 LNK2019

  25. 25

    Qt - LNK2019 在类的成员函数中使用命名空间的函数时

  26. 26

    Nuget - LNK2019 使用我的一个链接到 nuget 包的项目时

  27. 27

    LNK1120,LNK2001,LNK2019-无法跟踪原因

  28. 28

    过载矩阵运算符

  29. 29

    运算符+左右过载

热门标签

归档