上一页 1 ··· 157 158 159 160 161 162 163 164 165 ··· 233 下一页
摘要: 模板成员指的是模板里面的成员,有的成员(函数)可以特化。 template<> void ClassA<int> func(); 成员模板,指的是自身是模板的成员。 template <typename T> SList(T begin, T end); 成员模块,还可以用来写拷贝构造函数和赋值操作 阅读全文
posted @ 2017-03-01 10:45 blcblc 阅读(384) 评论(0) 推荐(0)
摘要: 都跟里氏替换原则有关。 协变:你可以用一个子类对象去替换相应的一个父类对象,这是完全符合里氏替换原则的,和协(谐)的变。如:用Swan替换Bird。 逆变:你可以用一个父类对象去替换相应的一个子类对象,这貌似不符合里氏替原则的,不和协(谐)的逆变。如:用Bird替换Swan。 阅读全文
posted @ 2017-03-01 00:47 blcblc 阅读(173) 评论(0) 推荐(0)
摘要: 局部特化所用的类型,可以由多个类型组成,比如: 也可以只针对成员函数进行特化。 阅读全文
posted @ 2017-03-01 00:37 blcblc 阅读(351) 评论(0) 推荐(0)
摘要: 注意,显式特化不是一个模板。如果是类型跟显式特化一样,那么不是实例化。 显式特化类的函数,不需要再加template,因为不是模板方法。 特化类的函数跟模板类不一定要一样,但是一样更好。 不支持局部特化函数,仅支持局部特化类。 局部特化,跟偏特化不同。 下面这个叫作局部特化: 原则:最具体的,限制性 阅读全文
posted @ 2017-02-28 22:14 blcblc 阅读(373) 评论(0) 推荐(0)
摘要: 查看这里: http://www.cplusplus.com/reference/iterator/back_inserter/ 是用来在最后插入的 注意,这个函数,是隐式特化了。 阅读全文
posted @ 2017-02-28 22:10 blcblc 阅读(179) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2017-02-28 18:32 blcblc 阅读(147) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2017-02-28 18:25 blcblc 阅读(281) 评论(0) 推荐(0)
摘要: new包含两步,调用operator new申请空间,以及调用构造函数。 如果第一步结束之后,第二步发生异常,需要归还第一步的空间。 编译器帮我们做了这件事情,并且会调用对应的delete。 另外 new 会调用类定义的 operator new,而::new 会调用默认的operator new. 阅读全文
posted @ 2017-02-28 18:24 blcblc 阅读(260) 评论(0) 推荐(0)
摘要: 一般在new一个数组的时候,会先申请 unit * size + delta 大小的空间。delete的时候也要指定delete的是数组。 阅读全文
posted @ 2017-02-28 18:22 blcblc 阅读(155) 评论(0) 推荐(0)
摘要: 注意,我们无法改变new和delete操作符。 但是我们可以重载来里面的operator new 和 operator delete 方法,这个方法是被new操作符调用的,调用之后获得地址,会继续用构造函数初始化。 另有一种operator new的方法叫作placement new,被禁止替换,( 阅读全文
posted @ 2017-02-28 16:29 blcblc 阅读(247) 评论(0) 推荐(0)
上一页 1 ··· 157 158 159 160 161 162 163 164 165 ··· 233 下一页