类的友元函数模板调用与常见问题!

类的友元函数模板调用与常见问题!

调用的方法:

1-1

在这里插入图片描述

[1].在调取类友元函数模板时需要在友元函数写上模板声明(如下图所示):

1-2

在这里插入图片描述

错误示范(如下图所示):

1-3

在这里插入图片描述

或者:

1-4

在这里插入图片描述

[2].在外部写友元函数时需要跟类内部一样需要写声明如果在友元函数内需要类对象也需要使用类定义的模板类型名(如:T)‘注意加上尖括号’(如下图所示):

2-1

在这里插入图片描述

错误示范:

2-2

在这里插入图片描述

或者:

2-3

在这里插入图片描述

或者:

2-4

在这里插入图片描述

[3].在main函数调用时可以在友元函数名后加上<类型>,也可以不加效果是一样的但是头文件必须要使用类的cpp文件(如下图所示):

3-1

在这里插入图片描述

3-2

在这里插入图片描述

常见问题及解决方法:

4-1

在这里插入图片描述

[4]该类型问题可能原因有:
#1.没有使用类的cpp头文件:
解决方法:请参考3-1图:

示例:加上#include “类名.cpp”

或者

示例:#include “类名.hpp”

(注意::一般在含有友元函数模板的类都会使用.hpp方便其他程序员查阅

也就是改类cpp文件为hpp).

#2.在类的友元函数声明上没有使用模板声明:
解决方法:请参考1-2图第一行代码:

示例:加上template <tpyename 自定义名>

或者

示例:template <class 自定义名>

(注意:不推荐使用class, 因为类的关键字也是class).

#3.在类的友元函数声明上没有使用<自定义名>:
解决方法:请参考1-2图第二行代码:

示例:friend Max<自定义名> addr(const Max<自定义名>& c, const Max<自定义名>& d);

5-1

在这里插入图片描述

[5]该类型问题可能原因有:
#1.在友元函数实现中没有使用类定义的模板类型名:

错误示范在2-2或2-3或2-4!!!

解决方法:请参考图2-1.
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值