方式一:
- // dome.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
- //
- #define _CRT_SECURE_NO_WARNINGS
- #include
- //#include "tools.h"
- #include
- using namespace std;
- #include
-
- template <typename T1>
- void run(T1 &a);
- template <class T>
- class A
- {
- friend void run<>(A
&a); - public:
- T name;
- A(T name):name(name){}
- private:
- int i = 10;
- };
- template <typename T1>
- void run(T1 &a) { cout << a.i << endl; }
- int main()
- {
- A
aa("杨皓") ; - cout << aa.name << endl;
- run(aa);
- return 0;
- }
-
这么写就行了,说白了模板函数定义一个类型,传入任何类的引用去定义!
能解决定义模板函数具体化的问题。
方式二:
- // dome.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
- //
- #define _CRT_SECURE_NO_WARNINGS
- #include
- //#include "tools.h"
- #include
- using namespace std;
- #include
-
-
- template <class T>
- class A
- {
- template <typename T1> friend void run(A
&a) ; - public:
- T name;
- A(T name):name(name){}
- private:
- int i = 10;
- };
- template <typename T1>
- void run(A
&a) { cout << a.i << endl; } - int main()
- {
- A
aa("杨皓") ; - cout << aa.name << endl;
- run(aa);
- return 0;
- }
-