//一般模板友元关系
#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;
}
C++ 一般模板友元关系
最新推荐文章于 2022-04-13 14:50:11 发布