类模板中的好友功能和错误LNK2019

尤里里

我正在尝试<<在模板类中重载运算符,但我想在哪里出错

NSizeNatural<30> a(101);
cout << a;

没有整个程序就编译

错误:

error LNK2019: unresolved external symbol "class   std::basic_ostream<char,struct std::char_traits<char> > & __cdecl operator<<<30,unsigned int,unsigned __int64,10>(class std::basic_ostream<char,struct std::char_traits<char> > &,class NSizeNatural<30,unsigned int,unsigned __int64,10> const &)" (??$?6$0BO@I_K$09@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@std@@AAV01@ABV?    $NSizeNatural@$0BO@I_K$09@@@Z) referenced in function _main

我的Numbers.h文件:

template<int size, typename basic_type = unsigned int, typename long_type = unsigned long long, long_type base = bases(DEC)> 
class NSizeNatural
{
       // this is how I decelerate friend function  
     friend ostream& operator<<(ostream& str, const NSizeNatural<size, basic_type, long_type, base> & n);
}

Numbers.cpp文件中:

template<int size, typename basic_type, typename long_type, long_type base>
std::ostream& operator<<(std::ostream& out, const NSizeNatural<size, basic_type,   long_type, base> &y)
{
   // For now i want to have my code compile-able 
   return out << "gg"; 
}


我不知道如何正确地做。还有一个错误...

马苏德

您的代码中有两个问题,第一个是,您应该将实现operator <<移到头文件中(作为对问题的注释)。

但是,第二个问题是您对的定义friend operator <<,您必须将其定义为没有默认参数的模板函数:

template<int size, typename basic_type = unsigned int, typename long_type = unsigned long long, long_type base = bases(DEC)>
class NSizeNatural
{
    template<int size1, typename basic_type1, typename long_type1, long_type base1>
    friend ostream& operator<< (ostream& str, const NSizeNatural<size, basic_type, long_type, base> & n);
};

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么在模板和好友功能的情况下出现LNK1120和LNK2019

来自分类Dev

为什么在模板和好友功能的情况下出现LNK1120和LNK2019

来自分类Dev

错误LNK2019:无法解析的外部符号-功能模板的msvc调试版本

来自分类Dev

单个文件代码中的链接器错误 LNK2019 和 LNK1120

来自分类Dev

LNK2019带模板

来自分类Dev

从模板派生时出现LNK2019错误

来自分类Dev

位于单个文件中的两个类的链接器错误(LNK2019)

来自分类Dev

位于单个文件中的两个类的链接器错误(LNK2019)

来自分类Dev

错误:LNK2019:Qt中无法解析的外部符号

来自分类Dev

LNK2019:单调中未解决的错误

来自分类Dev

LNK2019-为什么未解决的具有模板好友功能的外部

来自分类Dev

LNK2019 和 LNK1120 错误,未解析的外部和未解析的符号

来自分类Dev

GLEW链接错误。错误LNK2019

来自分类Dev

GLEW链接错误。错误LNK2019

来自分类Dev

标头中的类的Struct函数声明和cpp中的定义。在单独的库中使用函数时的lnk2019

来自分类Dev

Visual Studio 2013错误LNK2019

来自分类Dev

Visual Studio 2013错误LNK2019

来自分类Dev

C ++继承和LNK2019

来自分类Dev

将错误与模板类中的好友函数链接

来自分类Dev

将错误与模板类中的好友函数链接

来自分类常见问题

如何解决错误LNK2019:无法解析的外部符号-功能?

来自分类Dev

我添加类的对象后,每次C ++ LNK2019错误

来自分类Dev

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

来自分类Dev

同一项目中两个类之间的C ++ LNK2019错误

来自分类Dev

错误LNK2019无法解析的外部符号-类库问题?

来自分类Dev

类类型的向量导致未解决的外部符号错误LNK2019

来自分类Dev

错误21错误LNK2019:无法解析的外部符号:....在函数:...中引用。

来自分类Dev

错误 LNK2019:无法解析的外部符号(libJPEG 编译和链接)

来自分类Dev

Linux 和 macOS 很好,但 Windows 构建会引发链接器错误 LNK2019

Related 相关文章

  1. 1

    为什么在模板和好友功能的情况下出现LNK1120和LNK2019

  2. 2

    为什么在模板和好友功能的情况下出现LNK1120和LNK2019

  3. 3

    错误LNK2019:无法解析的外部符号-功能模板的msvc调试版本

  4. 4

    单个文件代码中的链接器错误 LNK2019 和 LNK1120

  5. 5

    LNK2019带模板

  6. 6

    从模板派生时出现LNK2019错误

  7. 7

    位于单个文件中的两个类的链接器错误(LNK2019)

  8. 8

    位于单个文件中的两个类的链接器错误(LNK2019)

  9. 9

    错误:LNK2019:Qt中无法解析的外部符号

  10. 10

    LNK2019:单调中未解决的错误

  11. 11

    LNK2019-为什么未解决的具有模板好友功能的外部

  12. 12

    LNK2019 和 LNK1120 错误,未解析的外部和未解析的符号

  13. 13

    GLEW链接错误。错误LNK2019

  14. 14

    GLEW链接错误。错误LNK2019

  15. 15

    标头中的类的Struct函数声明和cpp中的定义。在单独的库中使用函数时的lnk2019

  16. 16

    Visual Studio 2013错误LNK2019

  17. 17

    Visual Studio 2013错误LNK2019

  18. 18

    C ++继承和LNK2019

  19. 19

    将错误与模板类中的好友函数链接

  20. 20

    将错误与模板类中的好友函数链接

  21. 21

    如何解决错误LNK2019:无法解析的外部符号-功能?

  22. 22

    我添加类的对象后,每次C ++ LNK2019错误

  23. 23

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

  24. 24

    同一项目中两个类之间的C ++ LNK2019错误

  25. 25

    错误LNK2019无法解析的外部符号-类库问题?

  26. 26

    类类型的向量导致未解决的外部符号错误LNK2019

  27. 27

    错误21错误LNK2019:无法解析的外部符号:....在函数:...中引用。

  28. 28

    错误 LNK2019:无法解析的外部符号(libJPEG 编译和链接)

  29. 29

    Linux 和 macOS 很好,但 Windows 构建会引发链接器错误 LNK2019

热门标签

归档