1. 类模板的声明与实现
    C++模板类是不能定义在源文件的。
    1.这是不允许的,因为模板类的成员函数的定义,是一种不完整的定义.
    2.由于编译器不知道模板参数的具体类型,无法为其成员函数生成代码.
    3.编译器在成员函数的调用处,才最终知道如何生成代码.
    总之,模板类的成员函数的定义不能像普通类的成员函数一样,定义在源代码中,而只能定义在头文件中.
    一下例子将会出现错误:
    //文件Compare.h
    #ifndef _COMPARE_H
    #define _COMPARE_H
    template
    class Compare
    {
    public:
    ~Compare(void);
    Compare(T,T);
    T max();
    T min();
    private:
    T x;
    T y;
    };
    #endif
    //文件Compare.cpp
    #include"Compare.h"
    template
    Compare::Compare(T a,T b)
    {
    x=a;
    y=b;
    }
    template
    Compare::~Compare(void)
    {
    }
    template
    T Compare::max()
    {
    return (x>y)?x:y;
    }
    template
    T Compare::min()
    {
    return (x>y)?y:x;
    }
    //文件main.cpp   
    #include
    using namespace std;
    #include"Compare.h"
    int main()
    {
    Compare tt(1,2);
    cout<<tt.max()<<endl;
    system(“pause”);
    getchar();
    return 0;
    }
    这样做是会报错的哟~

  2. 模板嵌套(即模板里面再定义模板,实现的时候具体的写法)!
    类模板的嵌套调用:前几天写binary tree的时候,有一个现象百思不得解,就是在模板类里面定义了模板函数,那这个函数在实现的时候时怎么样的呢?
    template
    class Myclass
    {
    public:
    T a;
    template <typename type_1 , typename type_2>
    type_1 add(const type_1 lva ,const type_2 rva);
    };
    上述的模板类,里面嵌套定义了模板函数,怎么去实现呢?
    template
    template <typename type_1,typename type_2>//这里时我当时疑惑的地方
    type_1 Myclass::add(const type_1 lva, const type_2 rva)
    {
    a = lva + rva;
    return a;
    }
    当时自己写的方式为template<class T ,typename type_1, typename type_2>,这显然没有理解模板参数的定义,模板参数定义后,其作用域范围是接下来的类或者函数。然后模板可以嵌套定义。
    再来一个更复杂的例子:

template
class Myclass
{
public:
T a;
template <typename type_1 , typename type_2>
type_1 add(const type_1 lva ,const type_2 rva);

     template <class type_3>class Myclass_2;         // 声明放在这里,具体定义放在类外进行。Myclass_2<T> C;          // 定义一个Myclass_2 类 A。使用 T 进行实例化

};

template
template <typename type_1,typename type_2>
type_1 Myclass::add(const type_1 lva, const type_2 rva)
{
a = lva + rva;
return a;
}

template
template
class Myclass::Myclass_2
{
public:
type_3 value;
type_3 sub(const type_3 a , const type_3 b) {vlaue = a - b;}
};
建议别这么搞,要是类型匹配不上,那你真的脑壳痛~

阿刚编程遇到的小问题集合~ 以后回顾用相关推荐

  1. 多线程编程学习笔记——使用并发集合(三)

    接上文 多线程编程学习笔记--使用并发集合(一) 接上文 多线程编程学习笔记--使用并发集合(二) 四.   使用ConcurrentBag创建一个可扩展的爬虫 本示例在多个独立的即可生产任务又可消费 ...

  2. 核桃编程学python吗_学编程要趁早?对话核桃编程X支付宝 “小程序编程马拉松”三强得主...

    原标题:学编程要趁早?对话核桃编程X支付宝 "小程序编程马拉松"三强得主 来源:网络 浏览专业IT技术社区网站,创作沉浸式互动体验游戏,开发辟谣小程序......这并不是程序员大神 ...

  3. 零基础如何高效学习Java 成就我的10个编程学习实用小技巧

    这几天有很多小伙伴私信问我:我最近开始学习编程,但是感觉自己的学习效率特别的低,你是怎么学习编程的呢,有什么好的学习方法,如何高效的学习编程,学习编程有什么方法论吗? 我回顾了一下自己从学习编程到一直 ...

  4. 零基础如何高效学习编程|成就我的10个编程学习实用小技巧

    这几天有很多小伙伴私信问我:老鬼呀,我最近开始学习编程,但是感觉自己的学习效率特别的低,你是怎么学习编程的呢,有什么好的学习方法,如何高效的学习编程,学习编程有什么方法论吗? 我回顾了一下自己从学习编 ...

  5. 全栈工程师15年经验分享:40个改变编程技能的小技巧

    白交 发自 凹非寺  量子位 报道 | 公众号 QbitAI 编程如何节省更多的时间,犯更少的错误? 最近,这样一份「心得」火了.这位名叫Kesk Noren的软件工程师在Medium上分享了一篇博文 ...

  6. 15年经验分享:40个改变编程技能的小技巧

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自|机器学习算法那些事 编程如何节省更多的时间,犯更少的错误 ...

  7. 11个提升编程能力的小方法

    编程是当今社会最为实用的技能之一.从能够创造一个公司网站到知道怎么修复一个重定向错误,这些技能带来的价值,不管是对雇主还是对程序员自身,都是无法估量的. 但是,保持你当前的状态,停滞不前,那你永远无法 ...

  8. c++游戏代码大全_还在学少儿编程?不如来玩工厂编程师,免费学编程逻辑的小游戏...

    40000+游戏爱好者已加入我们! 每天推荐好玩游戏! 加入我们,沐沐带你发现好游戏! <工厂编程师>游戏小程序好玩吗? <工厂编程师>小游戏怎么玩? 只有你想不到, 没有我找 ...

  9. 大三软件工程小项目-小技术集合总结

    大三软件工程小项目-小技术集 此篇文章是给出了此小项目用到的技术的总结: 方便自己有忘记的知识点后方便查阅. 也方便有需要的博友看. 下面是各个计算的链接 大家点击了进能进去 大三软件工程小项目-小技 ...

最新文章

  1. AI一分钟 | 阿里NLP技术连破两项世界纪录,玉泉一号AI试验卫星明年发射
  2. SAP HUM 将HU与交货单解绑
  3. Swift字典Dictionary快速文档
  4. 【转】SQL 语句执行顺序
  5. 1.c++模式设计-简单工厂模式
  6. 物联网大数据平台软件开发架构案例解析
  7. Android Service: 启动service, 停止service
  8. 初学linux网络服务之HTTP服务实验
  9. 解决Eclipse开发工具Debug调试JDK源码无法查看变量值
  10. 字节高工强推 “Android学习视频教程631部,文末有链接哦”
  11. steam授权文件_幼儿园STEAM教育的活动设计研究
  12. Proe/Creo经典曲面造型实战案例大合集
  13. “磁碟机”病毒分析报告
  14. 软件项目管理随谈(2)——项目合同问题
  15. 【项目复习篇】EGO电商项目技术总结与学习笔记
  16. 三国论(16-20章)
  17. 微信圣诞头像来了,快给你的头像带上圣诞帽吧
  18. 电脑linux 开启热点hostapt,Ubuntu16.04开启热点
  19. java计算机毕业设计基于安卓Android的社交app-社会交友app
  20. 技侦十所 技侦科技局

热门文章

  1. 新版UI聚合支付系统四方系统源码+修复漏洞完美版
  2. ERP与MBA的关系
  3. 解决浏览器中的小logo图标显示问题 icon
  4. 软件测试之独步武林系列(一)
  5. 添加背景音乐(visual stdio2019)
  6. 1109: 方块消除 blocks
  7. Win10/Win7 打印机 [有线局域网共享]
  8. 【人脸识别6】用haar+adaboost训练自己的人脸检测器
  9. 厦门的几家公司,软件测试岗位,帮忙推荐下哪家好?
  10. 苹果新专利曝光 背后有何暗示?