c++之类模板和友元
发布时间:2020-12-16 09:06:32 所属栏目:百科 来源:网络整理
导读:全局函数类内实现:直接在类内声明友元即可;(建议使用这种,更简单) 全局函数类外实现:需要提前让编译器知道全局函数的存在; #includeiostream using namespace std; // 通过类外实现需要先知道Person; template class T1, class T2 class Person; 通过
全局函数类内实现:直接在类内声明友元即可;(建议使用这种,更简单) 全局函数类外实现:需要提前让编译器知道全局函数的存在; #include<iostream> using namespace std; //通过类外实现需要先知道Person; template<class T1,class T2> class Person; 通过类外实现需要先知道show2(); template<void show2(Person<T1,T2> p) { cout << "姓名:" << p.name << endl; cout << 年龄:" << p.age << endl; }; template< Person { 全局函数类内实现 说明:这里这个函数已经不是类的成员函数了,在调用时直接使用即可,而不用p.show(); friend void show(Person<T1,1)"> p) { cout << endl; cout << endl; } 全局函数类外实现 加空模板参数列表 需要让编译器提前知道这一个函数的存在 friend void show2<>(Person<T1,1)"> p); public: Person(T1 name,T2 age) { this->name = name; this->age = age; } private: T1 name; T2 age; }; void test() { Person<string,1)">int> p(tom",12); show(p); show2(p); } int main() { test(); system(pause"); return 0; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |