C++ 模板练习1
2015-06-14 11:44
260 查看
//特定的模板友元关系 #include "stdafx.h" #include <iostream> using namespace std; template<class T>class MyClass1; template<class T>T Get( const T&); template<class T> class MyClass { public: MyClass(){}; ~MyClass(){}; friend class MyClass1<int>; friend int Get<int>( const int&); private: static T a; }; int MyClass<int>::a = 10; template<class T> class MyClass1 { public: MyClass1(); ~MyClass1(); T Get(); private: }; template<> MyClass1<int>::MyClass1() { } template<> MyClass1<int>::~MyClass1() { } template<> int MyClass1<int>::Get() { MyClass<int> (mc); return mc.a; } template<class T> int Get( const int&nNum) { MyClass<int> (mc); return mc.a + nNum; } 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; } // #include "stdafx.h" #include <iostream> using namespace std; template<class T>class MyClass1; template<class T>T Get(const T&); template<class T> class MyClass { public: MyClass(); ~MyClass(); friend class MyClass1<int>; friend T Get<>(const T&); private: const static int i = 10; }; MyClass<int>::MyClass() { } MyClass<int>::~MyClass() { } template<class T> int Get<>(const int &a) { MyClass<int> (mc); return a + mc.i; } template<class T> class MyClass1 { public: MyClass1(); ~MyClass1(); int Get(); private: }; MyClass1<int>::MyClass1() { } MyClass1<int>::~MyClass1() { } int MyClass1<int>::Get() { MyClass<int>(mc); return mc.i; } int _tmain(int argc, _TCHAR* argv[]) { int n = Get<int>(123); cout<<n<<endl; MyClass1<int>(mc); n = mc.Get(); cout<<n<<endl; return 0; }
版权声明:本文为博主原创文章,未经博主允许不得转载。
相关文章推荐
- Effective C++条款03解读:尽可能使用const
- c++中调用cygwin/x使用ncl
- HDU-1048-The Hardest Problem Ever(C++ && 偶尔一水......)
- C++:模板实参推断及引用折叠
- 使用Google CPU Profiler对C/C++多线程程序做性能剖析
- C++ 虚函数 剖析
- Effective C++条款04解读:确定对象被使用之前已先被初始化
- C++ Primer Plus学习笔记二(第三章)
- C++多线程与临界资源实例
- C++关于变量名的解析
- C语言编译过程简介
- C语言中的指针-记录个人理解
- STL控件的使用
- c++ 头文件<cstring>(或者string.h)中的常见函数的实现!
- chapter12test6
- 一起talk C栗子吧(第十五回:C语言实例--双向链表)
- c++ 在控制台里用字符拼成图片
- C++11特性(01)auto关键字
- C++ I/O
- C++对象模型之RTTI的实现原理