C++类将函数模板声明为友元 实例

//program 18.5.3.cpp 类也可以将 函数模板声明为友元
#include <iostream>
using namespace std;
class A
{
int v;
public:
A(int n) :v(n)
{
cout << "A:: theconstructor was called!" << endl;
}
template <class T>
friend void Print(const T& p);//全局函数模板Print<T>实例化出来的模板函数就可以访问A类对象参数的私有成员;
};
/*全局函数模板Print(参数是某个类的对象)*/
template <class T>
void Print(const T& p)
{
cout <<"p.v="<< p.v<<endl;
}
int main()
{
A a(4);
/*调用全局函数模板友实例化的模板函数:此处的函数模板的实例化通过对象a隐式实例化成模板函数Print<const A& p>*/
Print(a);
return 0;
}
posted @   xuchaoxin1375  阅读(9)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
历史上的今天:
2021-09-18 vim@修改@删除括号@引号中的内容删除光标所在单词
点击右上角即可分享
微信分享提示