类模板 与 模板类


一个类模板(也称为类属类或类生成类)允许用户为类定义一种模式,使得类中的某些数据成员、默写成员函数的参数、某些成员函数的返回值,能够取任意类型(包括系统预定义的和用户自定义的)

模板类是类模板实例化后的一个产物。说个形象点的例子吧。我把类模板比作一个做饼干同的模子,而模板类就是用这个模子做出来的饼干,至于这个饼干是什么味道的就要看你自己在实例化时用的是什么材料了,你可以做巧克力饼干,也可以做豆沙饼干,这些饼干的除了材料不一样外,其他的东西都是一样的了。

// 类模板;
template<class T>
class Base{
public:
    explicit Base():m_t(0){}
    explicit Base(T t):m_t(t){}
    T getT() const {     return m_t;   }
    Base<T> sum(const Base<T> &);
    T& operator=(const Base<T> &);  // this -
    T m_t;
};
 
 
 
 
 
 
template<class T>
T& Base<T>::operator=(const Base<T> &t){
    this->m_t = t.getT();
    return *this;
}
 
 
template<class T>
Base<T> Base<T>::sum(const Base<T> &t){
     this->m_t += t.getT();
     return *this;
}
 
 
 
 
// 从类模板派生非模板类
 
 
class Deriveint:public Base<int>  // 实例化特定类;
{
public:
    explicit Deriveint(int c):Base(c){} ;
 
 
 
 
};
 
 
//从类模板派生类模板可以从类模板派生出新的类模板
template<class T>
class Derive:public Base<T>
{
public:
    explicit Derive(T t):Base<T>(t){  } ;
 
 
 
 
};





int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
 
 
 
 
 
 
 
 
    Base<int>  base(12);
    qDebug() << base.getT() << endl;
 
 
 
 
    Derive<double> cd(3.43);
    qDebug() <<  cd.getT() ;
 
 
    Derive<double> c = cd ;
 
 
    qDebug() <<  c.getT() ;
 
 
 
 
    c.sum(cd);
    qDebug() <<  c.getT() ;
 
 
    return a.exec();
}
 

转载于:https://www.cnblogs.com/vagabond/p/5073702.html

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 、4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。、可私 6信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 、4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。、可 6私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 、4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。、可私 6信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值