类模版
2015-10-22 14:43
393 查看
// CCodeTest.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <iostream>
using namespace std;
class A
{
public:
int func1(int x,int y)
{
printf("A::func:x=%d,y=%d/n",x,y);
return (x<y?x:y);
}
virtual int func2(int x,int y)
{
printf("A::func:x=%d,y=%d/n",x,y);
return (x>y?x:y);
}
};
class B : public A
{
public:
virtual int func2(int x,int y)
{
printf("B::func:x=%d,y=%d/n",x,y);
return (x+y);
}
};
typedef int (A::*p)(int,int);//指针名前一定要加上所属类型类名 A::的限定
typedef int (B::*p0)(int,int);
template<typename T,typename T1 =void ,typename T2 = void>
class M
{
public:
void show()
{
cout<<"1"<<endl;
}
};
template<typename T1,typename T2>
class M<double,T1,T2>
{
public:
void show()
{
cout<<"2"<<endl;
}
};
template<typename T1,typename T2>
class M<T1,char,T2>
{
public:
void show()
{
cout<<"3"<<endl;
}
};
template<>
class M<int,double,char>
{
public:
void show()
{
cout<<"6"<<endl;
}
};
template<typename T1,typename T2>
class M<T1,T2>
{
public:
void show()
{
cout<<"4"<<endl;
}
};
template<typename T1>
class M<T1,int>
{
public:
void show()
{
cout<<"5"<<endl;
}
};
class SpecialA
{
public:
int m_a;
//const int m_b;
};
int main()
{
auto a = 15;
cout<<a<<endl;
}
//
#include "stdafx.h"
#include <iostream>
using namespace std;
class A
{
public:
int func1(int x,int y)
{
printf("A::func:x=%d,y=%d/n",x,y);
return (x<y?x:y);
}
virtual int func2(int x,int y)
{
printf("A::func:x=%d,y=%d/n",x,y);
return (x>y?x:y);
}
};
class B : public A
{
public:
virtual int func2(int x,int y)
{
printf("B::func:x=%d,y=%d/n",x,y);
return (x+y);
}
};
typedef int (A::*p)(int,int);//指针名前一定要加上所属类型类名 A::的限定
typedef int (B::*p0)(int,int);
template<typename T,typename T1 =void ,typename T2 = void>
class M
{
public:
void show()
{
cout<<"1"<<endl;
}
};
template<typename T1,typename T2>
class M<double,T1,T2>
{
public:
void show()
{
cout<<"2"<<endl;
}
};
template<typename T1,typename T2>
class M<T1,char,T2>
{
public:
void show()
{
cout<<"3"<<endl;
}
};
template<>
class M<int,double,char>
{
public:
void show()
{
cout<<"6"<<endl;
}
};
template<typename T1,typename T2>
class M<T1,T2>
{
public:
void show()
{
cout<<"4"<<endl;
}
};
template<typename T1>
class M<T1,int>
{
public:
void show()
{
cout<<"5"<<endl;
}
};
class SpecialA
{
public:
int m_a;
//const int m_b;
};
int main()
{
auto a = 15;
cout<<a<<endl;
}
相关文章推荐
- Java流--flush()
- 控制台输出太多导致项目启动过慢
- bfs算法
- [脚本]批量解压 重命名
- cvNormalize
- python的类属性和实例属性
- GitHub:代码是程序员沟通最直接的手段
- iOS项目问题汇总<二>
- Hexagon DSP功能介绍
- android/ios js 启动apk
- 安装unzip
- NSURLConnecntion的问题
- jrebel(转)
- c++虚拟函数virtual
- Unix Network Programming(4)---TCP
- 学习Android推送功能笔记(6)---Mina--CodecFactory自定义和一点别的扩展
- 卓越管理的实践技巧(4)如何才能给予有效的反馈 Guide to Giving Effective Feedback
- 1022 词法分析程序总结
- hive概念
- Linux du,df 查看文件及文件夹大小