恢复内容开始 一、泛型编程 定义:编写与类型无关的逻辑代码,是代码复用的一种手段。模板是泛型编程的基础 模板分为:函数模板和类模板 函数模板:代表了一个函数家族,该函数与类型无关,在使用时被参数化,根据实参类型产生函数的特定类型版本。 函数模板的格式:template<typename p1,typ ...
分类:
编程语言 时间:
2016-11-04 09:42:42
阅读次数:
330
1.模板就是实现代码重用机制的一种工具,它可以实现类型参数化,即把类型定义为参数,从而实现了真正的代码可重用性。模板可以分为两类,一个是函数模板,另一个是类模板。 2.函数模板的定义一般形式如下: template<class或者typename T>返回类型 函数名(形参表) {//函数定义体} ...
分类:
其他好文 时间:
2016-10-26 19:08:57
阅读次数:
207
本文记录了我读Effective Modern C++时自己的一些理解和心得。 item1:模板类型推导 1)reference属性不能通过传值参数传入模板函数。这就意味着如果模板函数需要一个reference类型的参数,必须在模板声明中将其声明为reference,否则,即使使用一个referen ...
分类:
编程语言 时间:
2016-10-22 23:37:19
阅读次数:
225
工作需要,要学习Qt,之前学过Java,我想C++和Java对比着来学习应该可以很快上手。 C++的核心概念:编译单元,头文件,目标文件,库 Qt:信号和槽机制,foreach Qt中没有用到的c++概念:模板类,模板函数的定义 共用体类型,异常 这三个就放在以后再学 差异: 1. C++不会在运行 ...
分类:
编程语言 时间:
2016-10-19 09:38:11
阅读次数:
195
1.函数重载 这是小菜鸟写的一个例子。 函数重载应该注意以下几点: 1.1重载函数有类似的功能; 1.2只能以参数的类型(形参个数和类型)来重载函数, int max(int a,int b);float max(int a,int b);错 int max(int a,int b);float m ...
分类:
编程语言 时间:
2016-10-12 22:40:01
阅读次数:
139
C++模板 模板是C++支持参数化多态的工具,使用模板可以使用户为类或者函数声明一种一般模式,使得类中的某些数据成员或者成员函数的参数、返回值取得任意类型。 模板是一种对类型进行参数化的工具; 通常有两种形式:函数模板和类模板; 函数模板针对仅参数类型不同的函数; 类模板针对仅数据成员和成员函数类型 ...
分类:
编程语言 时间:
2016-09-29 01:00:09
阅读次数:
254
0.前言 模板是一种通用的描述机制,当使用模板时,允许使用通用类型来定义函数或类。通用类型可被具体类型(如int,double甚至是用户自定义类型)来代替。模板引入了一个全新的编程思维方式,称为“泛型编程”或者“通用编程”。 1.函数模板 1)函数模板声明形式如下: class用于定义类,在模板引入 ...
分类:
编程语言 时间:
2016-09-24 16:05:36
阅读次数:
300
1、any any可以存储任意类型元素,如int、double、string、vector或自定义类型。它能够存储任意类型的原因是其构造函数和赋值函数opeartor=是模板函数,可以接收任意类型。any不是一个模板类,所以定义元素的时候不必使用<>,如any a = 10; 需要注意的有两点: 在 ...
分类:
其他好文 时间:
2016-09-21 14:39:39
阅读次数:
197
STL的<utility>头文件中描述了一个非常简单的模板类pair,用来表示一个二元组或元素对,并提供了大小比较的比较运算符模板函数。 pair模板类需要两个参数:首元素的数据类型和尾元素的数据类型。pair模板类对象有两个成员:first和second,分别表示首元素和尾元素。 在<utilit ...
分类:
其他好文 时间:
2016-09-18 18:10:31
阅读次数:
124
函数模板 编译器通常用函数实参来为我们推断模板实参。 编译器用推断出的模板参数来为我们实例化(instantiate)一个特定版本的函数。生成的版本通常被称为模板的实例。 我们可以在模板中定义非类型参数(nontype parameter)。一个非类型参数表示一个值而非一个类型。模板实参必须是常量表 ...
分类:
其他好文 时间:
2016-09-11 20:09:08
阅读次数:
175