//myTemplate.h
//模板类
#ifndef MYTEMPLATE_H
#define MYTEMPLATE_H
#include <iostream>
using namespace std;
template <class T1, class T2>
class Point{
public: //不要忘了
Point(T1 x, T2 y) :m_x(x), m_y(y)
{
}
public:
T1 getX() const; //返回的变量类型是T1
void setX(T1 x); //设置x坐标
T2 getY() const; //返回的变量类型是T2
void setY(T1 y); //设置x坐标
private:
T1 m_x;
T2 m_y;
};
template <class T1, class T2>
T1 Point<T1,T2>::getX() const //返回的变量类型是T1
{
return m_x;
}
template <class T1, class T2>
void Point<T1, T2>::setX(T1 x) //设置x坐标
{
m_x = x;
}
template <class T1, class T2>
T2 Point<T1, T2>::getY() const //返回的变量类型是T2
{
return m_y;
}
template <class T1, class T2>
void Point<T1, T2>::setY(T1 y) //设置x坐标
{
m_y = y;
}
#endif
// ClassTempplate3.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include"myTemplate.h"
#include <iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
Point<int, int> p1(10, 20);
cout << "x=" << p1.getX() << ", y=" << p1.getY() << endl;
Point<int, char*> p2(10, "东经180度");
cout << "x=" << p2.getX() << ", y=" << p2.getY() << endl;
Point<char*, char*> *p3 = new Point<char*, char*>("东经180度", "北纬210度");
cout << "x=" << p3->getX() << ", y=" << p3->getY() << endl;
getchar();
return 0;
}
运行结果: