uacs2024

导航

2024年3月14日 #

C++模板的显式具体化

摘要: C++ 模板 C++ 没有办法限制类型参数的范围,我们可以使用任意一种类型来实例化模板。但是模板中的语句(函数体或者类体)不一定就能适应所有的类型,可能会有个别的类型没有意义,或者会导致语法错误。例如有下面的函数模板,它用来获取两个变量中较大的一个: template<class T> const  阅读全文

posted @ 2024-03-14 22:21 ᶜʸᵃⁿ 阅读(27) 评论(0) 推荐(0) 编辑

C++函数模板的实参推断

摘要: C++ 模板 在使用类模板创建对象时,程序员需要显式的指明实参(也就是具体的类型)。例如对于下面的 Point 类: template<typename T1, typename T2> class Point; 我们可以在栈上创建对象,也可以在堆上创建对象: Point<int, int> p1( 阅读全文

posted @ 2024-03-14 21:34 ᶜʸᵃⁿ 阅读(32) 评论(0) 推荐(0) 编辑

C++函数模板的重载

摘要: C++模板 当需要对不同的类型使用同一种算法(同一个函数体)时,为了避免定义多个功能重复的函数,可以使用模板。然而,并非所有的类型都使用同一种算法,有些特定的类型需要单独处理,为了满足这种需求,C++ 允许对函数模板进行重载,程序员可以像重载常规函数那样重载模板定义。 我们定义了 Swap() 函数 阅读全文

posted @ 2024-03-14 20:33 ᶜʸᵃⁿ 阅读(28) 评论(0) 推荐(0) 编辑

虚析构函数

摘要: 在C++中,不能声明虚构造函数,但是可以声明虚析构函数。语法为 virtual ~类名(); 如果一个类的析构函数是虚函数,那么,由它派生而来的所有子类的析构函数也是虚函数。析构函数设置为虚函数之后,在使用指针引用时可以动态绑定,实现运行时的多态,保证使用基类类型的指针就能够调用适当的析构函数针对不 阅读全文

posted @ 2024-03-14 14:27 ᶜʸᵃⁿ 阅读(21) 评论(0) 推荐(0) 编辑