c++中友元的一些总结(3)

发布时间:2019-02-04 19:00:53

3,模板类里的友元
模板类里也能申明2中的友元,但是模板类有模板参数,如果利用了这个模板参数的友元申明,就属这种情形。
template
class A
{
public:
friend void foo1(T);
};
但是,在这里,必须要求foo1在这里是可见的,即不能是首次申明式。如果不使用模板参数,那会是一种有趣的情形。
template
class A
{
public:
friend void foo(){}
};
注意这里是一个定义式,它定义了一个::foo()函数为该模板类的友元,在该模板类具现的时候,::foo()也被具现出来,即:
A a1;// ::foo()首次定义
A a2;// ::foo()第二次定义,违背C 一次定义原则
阅读更多其他试题,请访问生活日记网 用日志记录点滴生活!考试试题频道。
喜欢考试试题,那就经常来哦

该内容由生活日记网提供.