随笔分类 -  模板与泛型编程

摘要:先看一段代码: template<typename T> void myfunc(T& tmprv) { cout << " begin " << endl; using boost::typeindex::type_id_with_cvr; cout << "T=" type_id_with_cv 阅读全文
posted @ 2024-03-30 22:01 小熊酱 阅读(18) 评论(0) 推荐(0) 编辑
摘要:右值引用用&&符号表示。右值引用主要是绑定到右值上,如: int &&rv = 100; 看下面函数定义: void myfunc(int &&tmprv) { cout << tmprv << endl; return; } int main() { myfunc(10); // 正确,右值作为实 阅读全文
posted @ 2024-03-30 21:09 小熊酱 阅读(37) 评论(0) 推荐(0) 编辑
摘要:先看一个多态的例子: class Human { public: virtual void eat = 0; virtual ~Human() {} }; class Men : public Human { public: virtual void eat() { cout << "男人" << 阅读全文
posted @ 2024-03-30 18:27 小熊酱 阅读(13) 评论(0) 推荐(0) 编辑
摘要:1. 常规默认参数 类型模板参数可以有默认值。但指定默认值有一个规矩:如果某个模板参数有默认值,那么从这个默认值的模板参数开始,后面的模板参数都得有默认值。 template<typename T = char, typename U = int> struct TC { ... }; int ma 阅读全文
posted @ 2024-03-30 11:48 小熊酱 阅读(13) 评论(0) 推荐(0) 编辑
摘要:1. 类模板的基本范例和模板参数的推断 基本范例: 类模板,也是生产类的工具,通过给定的模板参数,生成具体的类。类模板的声明和实现一般都放在同一个头文件中,因为实例化的时候必须有类模板的全部信息。 template<typename T> // T表示myvector这个容器所存储的元素类型 cla 阅读全文
posted @ 2024-03-29 22:51 小熊酱 阅读(12) 评论(0) 推荐(0) 编辑
摘要:1. 友元类 传统友元类的概念是:让某个类B成为另外一个类A的友元类,这样的话,类B就可以在其成员函数中访问类A的所有成员(成员变量、成员函数),而不管这些成员在类A中是用什么修饰符(private、protected、public)修饰的。如果现在类A和类B都变成了类模板,那么能否让类模板B成为类 阅读全文
posted @ 2024-03-29 19:56 小熊酱 阅读(76) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示