摘要:
多参数类模板: 特化: 上图特化的意义是将原来接收任意两个类型参数的模板特化为只能接收一种类型的两个参数。 这意味着如果定义类时我们给的两个参数是同种类型的,则编译器优先使用右边的这种模板实现。 一个类模板实际分开实现为两个部分,编译器根据具体的参数选择其中的一个模板。 编译器会认为上图中的两个Te 阅读全文
posted @ 2018-09-04 23:29
周伯通789
阅读(188)
评论(0)
推荐(0)
摘要:
思考: 在C++中能否将泛型的思想应用到类呢? 类模板: 类模板的应用: 实验: 运行结果如下: 编译器编译到16行发现两个string类型相减,而string类本身不支持这种相减操作,于是编译器去找string类型减法的重载,于是找到了28行的函数,最终编译成功,执行时也调用到了28行的重载函数。 阅读全文
posted @ 2018-09-04 23:11
周伯通789
阅读(284)
评论(0)
推荐(0)
摘要:
深入理解函数模板: 注意事项: 示例: 两个指针打印了不同的值,这说明编译器根据函数模板产生了两个具体的函数。 添加一个新类型: 结果如下: 我们将类的拷贝构造函数定义成私有的,编译器检测出了错误。 我们的模板是没有问题的,编译器在进行第一次编译时没有错误,并且产生一个参数类型为Test的函数。 在 阅读全文
posted @ 2018-09-04 22:47
周伯通789
阅读(180)
评论(0)
推荐(0)
摘要:
发散性问题: C++有几种交换变量的方法? 定义宏代码块与函数: 实验: 结果如下: 每当我们需要交换两个变量的值时,就需要重载一个函数,这是重复性的劳动。 优缺点分析: 我们需要找到一种方法可以集合宏和函数的优点。 泛型编程: 函数模板: 实验: 运行结果如下: 小结: 阅读全文
posted @ 2018-09-04 22:21
周伯通789
阅读(198)
评论(0)
推荐(0)
摘要:
关于动态内存分配: new Test共完成两步: 1、申请堆空间 2、在申请的堆空间上调用构造函数 示例程序: 第18行申请了内存空间,然后在申请的内存空间上调用了构造函数。 而第19行仅仅是申请了内存空间。 面向对象中尽量使用new。 new是C++语言的一部分。 delete: 第25行的del 阅读全文
posted @ 2018-09-04 21:40
周伯通789
阅读(223)
评论(0)
推荐(0)
浙公网安备 33010602011771号