栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C++类模板(一)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C++类模板(一)

C++ 除了支持函数模板,还支持类模板(Class Template)。函数模板中定义的类型参数可以用在函数声明和函数定义中,类模板中定义的类型参数可以用在类声明和类实现中。类模板的目的同样是将数据的类型参数化。

声明类模板的语法为:

template class 类名{
    //TODO:
};

类模板和函数模板都是以 template 开头(当然也可以使用 class,目前来讲它们没有任何区别),后跟类型参数;类型参数不能为空,多个类型参数用逗号隔开。

一但声明了类模板,就可以将类型参数用于类的成员函数和成员变量了。换句话说,原来使用 int、float、char 等内置类型的地方,都可以用类型参数来代替。

假如我们现在要定义一个类来表示坐标,要求坐标的数据类型可以是整数、小数和字符串,例如:

  • x = 10、y = 10
  • x = 12.88、y = 129.65
  • x = “东经180度”、y = “北纬210度”

这个时候就可以使用类模板,请看下面的代码

#include 
using namespace std;

template  class Point{

public:
    Point(T1 x,T2 y):m_x(x),m_y(y){};

    T1 getX() const;//获取x坐标
    void setX(T1 x);//设置x坐标
    T2 getY() const;//获取y坐标
    void setY(T2 y);  //设置y坐标


private:
    T1 m_x;  //x坐标
    T2 m_y;  //y坐标
};


template    //模板头
         //函数头
  T1 Point::getX() const {
    return m_x;
}


template    //模板头

//函数头
void  Point::setX(T1 x)  {
    m_x=x;
}

template    //模板头
//函数头
T2 Point::getY() const {
    return m_y;
}

template    //模板头

//函数头
void Point::setY(T2 y)  {
    m_y=y;
}


int main(){

    Point  p1(10,20);
    cout <<"x="<
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/511239.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号