类模版

来源:互联网 发布:平面装修设计软件 编辑:程序博客网 时间:2024/05/22 05:12
// 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;
}

0 0
原创粉丝点击