当前位置: 首页 > wzjs >正文

专业网站设计的公司seo优化在线

专业网站设计的公司,seo优化在线,做网站要多少钱,卫龙网络营销案例分析全局函数类内实现-直接在类内声明友元即可全局函数类外实现-需要提前让编译器知道全局函数的存在#include <iostream> using namespace std;//通过全局函数来打印Person的信息template<class T1,class T2> class Person{//全局函数&#xff0c;类内实现friend void…

全局函数类内实现-直接在类内声明友元即可

全局函数类外实现-需要提前让编译器知道全局函数的存在

#include <iostream>
using namespace std;//通过全局函数来打印Person的信息template<class T1,class T2>
class Person{//全局函数,类内实现friend void printPerson(Person<T1,T2> p){cout << "姓名:" << p.m_Name << " 年龄:" << p.m_Age << endl;}public:Person(T1 name,T2 age){this->m_Name=name;this->m_Age=age;}private:T1 m_Name;T2 m_Age;};
//1.全局函数在类内实现
void test01()
{Person<string,int> p("Tom",20);printPerson(p);
}
int main()
{test01();return 0;
}

你看,其实一开始m_Name和m_Age是一个私有的属性,因为其前面有private关键字,因此前面加上friend,也就是友元的全局函数才能访问这个私有属性。

全局函数在类外实现的时候

#include <iostream>
using namespace std;//通过全局函数来打印Person的信息
template<class T1,class T2>
class Person{//全局函数,类内实现friend void printPerson2(Person<T1,T2> p);// {//     cout << "姓名:" << p.m_Name << " 年龄:" << p.m_Age << endl;// }public:Person(T1 name,T2 age){this->m_Name=name;this->m_Age=age;}private:T1 m_Name;T2 m_Age;};
//1.全局函数在类内实现
// void test01()
// {
//     Person<string,int> p("Tom",20);
//     printPerson(p);
// }
//2.全局函数在类外实现,因为这是一个全局函数,因此其没有必要加作用域
template<class T1,class T2>
void printPerson2(Person<T1,T2> p)
{cout << "类外实现的姓名:" << p.m_Name << " 类外实现的年龄:" << p.m_Age << endl;
}
//全局函数在类外实现的测试
void test02()
{Person<string,int> p("Jerry",28);printPerson2(p);
}
int main()
{test02();return 0;
}

其会出现一个无法解析的错误。

    friend void printPerson2(Person<T1,T2> p);

这是一个普通函数的函数声明。

但是下面这是一个函数模版的实现,因此就导致了这两个不是一个东西。因此我们需要告诉编译器这是一个函数模版的声明。

//2.全局函数在类外实现,因为这是一个全局函数,因此其没有必要加作用域
template<class T1,class T2>
void printPerson2(Person<T1,T2> p)
{cout << "类外实现的姓名:" << p.m_Name << " 类外实现的年龄:" << p.m_Age << endl;
}
#include <iostream>
using namespace std;template<class T1,class T2>
class Person;template<class T1,class T2>
void printPerson2(Person<T1,T2> p)
{cout << "类外实现的姓名:" << p.m_Name << " 类外实现的年龄:" << p.m_Age << endl;
}//通过全局函数来打印Person的信息
template<class T1,class T2>
class Person{//全局函数,类内实现//加空模版的参数列表friend void printPerson2(Person<T1,T2>p){cout << "姓名:" << p.m_Name << " 年龄:" << p.m_Age << endl;}friend void printPerson2<>(Person<T1,T2> p);public:Person(T1 name,T2 age){this->m_Name=name;this->m_Age=age;}private:T1 m_Name;T2 m_Age;};
//1.全局函数在类内实现
// void test01()
// {
//     Person<string,int> p("Tom",20);
//     printPerson(p);
// }
//2.全局函数在类外实现,因为这是一个全局函数,因此其没有必要加作用域
template<class T1,class T2>
void printPerson2(Person<T1,T2>& p)
{cout << "类外实现的姓名:" << p.m_Name << " 类外实现的年龄:" << p.m_Age << endl;
}
//全局函数在类外实现的测试
void test02()
{Person<string,int> p("Jerry",28);printPerson2(p);
}
int main()
{test02();return 0;
}

一般没有特殊需求的话,直接就写全局函数配合类内实现就完事儿了,用法非常简单,而且编译器可以直接识别。

http://www.dtcms.com/wzjs/88953.html

相关文章:

  • b s网站开发上海优质网站seo有哪些
  • 做进口假体下巴的网站合肥seo优化公司
  • 网站建设打造大数据获客系统
  • 有没有免费注册域名的网站代发关键词包收录
  • 邢台哪里有做网站的短链接生成
  • 网站路径改版如何做301重定向可以直接进入网站的正能量
  • 有服务器有域名怎么做网站桂林网站设计
  • 官网网站设计费用seo程序
  • 有了网址怎么做网站广点通广告投放平台
  • 网站品牌栏目建设淘宝关键词搜索排名
  • vs2012手机网站开发教程苏州网站优化排名推广
  • 最好的建站公司免费下载优化大师
  • 网站上传的图片不显示搜索引擎怎么做
  • 常德建设公司网站网上学电脑培训中心
  • ppt设计培训班重庆做seo外包的
  • 重庆南岸网站建设b2b和b2c是什么意思
  • 美女做直播网站有哪些网站优化包括对什么优化
  • 专门做名片的网站长春网站制作
  • 四川城乡与建设厅网站网站制作app免费软件
  • 域名申请成功后怎么做网站怎么创建网页链接
  • 北京网络营销网站网络营销课程作业
  • 建什么网站做cpa赣州seo唐三
  • 网站仿站教程神马seo教程
  • 郑州发布最新消息今天拼多多seo搜索优化
  • 网站建设 工具seo黑帽多久入门
  • 做网站主要注意些什么seo智能优化系统
  • 建设网站对服务器有什么要求个人接外包项目平台
  • wordpress对接COS后网站变慢seo与网络推广的区别和联系
  • 徐州网站优化seo外链优化
  • 化妆品网站建设目标与期望全国疫情实时动态