uacs2024

导航

上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 21 下一页

2024年3月16日 #

C++类模板与友元详解

摘要: C++ 模板 下面分四种情况分别讨论。 1. 函数、类、类的成员函数作为类模板的友元 函数、类、类的成员函数都可以作为类模板的友元。程序示例如下: void Func1() { } class A { }; class B { public: void Func() { } }; template  阅读全文

posted @ 2024-03-16 15:34 ᶜʸᵃⁿ 阅读(146) 评论(0) 推荐(0) 编辑

C++类模板与继承详解

摘要: C++ 模板 类模板和类模板之间、类模板和类之间可以互相继承。它们之间的派生关系有以下四种情况。 1. 类模板从类模板派生 示例程序: template <class T1, class T2> class A { Tl v1; T2 v2; }; template <class T1, class 阅读全文

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

C++模板的显式实例化

摘要: C++ 模板 前面讲到的模板的实例化是在调用函数或者创建对象时由编译器自动完成的,不需要程序员引导,因此称为隐式实例化。相对应的,我们也可以通过代码明确地告诉编译器需要针对哪个类型进行实例化,这称为显式实例化。编译器在实例化的过程中需要知道模板的所有细节:对于函数模板,也就是函数定义;对于类模板,需 阅读全文

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

将C++模板应用于多文件编程

摘要: C++ 模板 在将函数应用于多文件编程时,我们通常是将函数定义放在源文件(.cpp文件)中,将函数声明放在头文件(.h文件)中,使用函数时引入(#include命令)对应的头文件即可。编译是针对单个源文件的,只要有函数声明,编译器就能知道函数调用是否正确;而将函数调用和函数定义对应起来的过程,可以延 阅读全文

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

C++模板的实例化

摘要: C++ 模板 模板并不是真正的函数或类,它仅仅是编译器用来生成函数或类的一张“图纸”。模板不会占用内存,最终生成的函数或者类才会占用内存。由模板生成函数或类的过程叫做模板的实例化,相应地,针对某个类型生成的特定版本的函数或类叫做模板的一个实例。在学习模板以前,如果想针对不同的类型使用相同的算法,就必 阅读全文

posted @ 2024-03-16 13:47 ᶜʸᵃⁿ 阅读(111) 评论(0) 推荐(0) 编辑

C++模板中的非类型参数

摘要: C++ 模板 模板是一种泛型技术,目的是将数据的类型参数化,以增强 C++ 语言(强类型语言)的灵活性。C++ 对模板的支持非常自由,模板中除了可以包含类型参数,还可以包含非类型参数,例如: template<typename T, int N> class Demo{ }; template<cl 阅读全文

posted @ 2024-03-16 13:30 ᶜʸᵃⁿ 阅读(321) 评论(0) 推荐(0) 编辑

2024年3月15日 #

模板特化与unsigned char

摘要: 模板特化与unsigned char #include <iostream> using namespace std; template <typename T> void print(T t){ cout << "The value is " << t << endl; } template<> 阅读全文

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

2024年3月14日 #

C++模板的显式具体化

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

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

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

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

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

C++函数模板的重载

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

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

上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 21 下一页