C++ 一般模板友元关系
//一般模板友元关系 #include "stdafx.h" #include <iostream> using namespace std; template<class T> class MyClass { public: MyClass(); ~MyClass(); template<class T>friend class MyClass1; template<class T>friend int Get(const int&); private: const static int a = 10; }; template<> MyClass<int>::MyClass() { } template<> MyClass<int>::~MyClass() { } template<class T> class MyClass1 { public: MyClass1(); ~MyClass1(); int Get(); private: }; template<> MyClass1<int>::MyClass1() { } MyClass1<int>::~MyClass1() { } int MyClass1<int>::Get() { MyClass<int>(mc); return mc.a; } template<class T> int Get<int>(const int&a) { MyClass<int>(mc); return mc.a + a; } int _tmain(int argc, _TCHAR* argv[]) { int n = Get<int>(123); cout<<n<<endl; MyClass1 <int>(mc1); n = mc1.Get(); cout<<n<<endl; return 0; }
版权声明:本文为博主原创文章,未经博主允许不得转载。