1 pair的应用 pair是将2个数据组合成一个数据,当需要这样的需求时就可以使用pair,如stl中的map就是将key和value放在一起来保存。另一个应用是,当一个函数需要返回2个数据的时候,可以选择pair。 pair的实现是一个结构体,主要的两个成员变量是first second 因为是 ...
分类:
编程语言 时间:
2017-11-02 00:02:32
阅读次数:
335
一。为什么初始化列表比构造函数效率更高? 1.因为C++规定数据成员的初始化发生在进入构造函数体之前,所以数据成员会先进行默认构造函数,然后进行复制构造函数进行赋值 2.所以使用初始化列表进行初始化不用进行数据成员的默认构造函数,所以更加高效 3.必须使用初始化列表:const成员,引用成员,初始化 ...
分类:
其他好文 时间:
2017-11-01 21:48:30
阅读次数:
138
什么是托管代码(managed code)? 托管代码是一microsoft的中间语言(IL),他主要的作用是在.NET FRAMEWORK的公共语言运行库(CLR)执行代码前去编译源代码,也就是说托管代码充当着翻译的作用,源代码在运行时分为两个阶段: 1.源代码编译为托管代码,(所以源代码可以有很 ...
分类:
其他好文 时间:
2017-10-20 10:26:10
阅读次数:
135
恢复内容开始 单例模式实现方式:将构造函数、拷贝构造函数、赋值构造函数声明为私有的。然后因为不能够创建对象,所以我们必须提供一个接口用于创建一个对象。必须将其声明为static静态成员函数,是指属于类而不属于对象,即整个类只有一份。静态成员函数只能访问静态数据成员,所以数据成员也要声明为静态的。 上 ...
分类:
其他好文 时间:
2017-10-16 21:46:25
阅读次数:
144
参考:http://www.weixueyuan.net/view/6375.html 总结: 函数签名包括函数名和函数参数的个数、顺序以及参数数据类型。 需要注意的是函数签名并不包含函数返回值部分,如果两个函数仅仅只有函数返回值不同,那么系统是无法区分这两个函数的,此时编译器会提示语法错误。 函数 ...
分类:
编程语言 时间:
2017-10-15 15:04:29
阅读次数:
156
C++类和对象的基本简介,包括构造函数、析构函数、拷贝构造函数、友元函数、内联函数、类的this指针、静态成员等内容概念介绍。 ...
分类:
编程语言 时间:
2017-10-15 00:41:05
阅读次数:
255
为什么要用移动语义 先看看下面的代码 以上代码拷贝构造函数会被调用两次,一次是从GetTemp函数中有HugeMem()生成的一个临时值用作返回值,另外一次则由临时值构造出main中的变量a。析构函数调用了三次。这个过程如果指针指向非常大的内存时拷贝构造 的代价相当昂贵。而令人堪忧的是:临时变量的生 ...
分类:
移动开发 时间:
2017-10-14 01:33:44
阅读次数:
254
为什么要用移动语义 它是为了减少对象拷贝开销而存在的,具体请看本文后面几节代码 左值和右值 判断左值和右值的方法有两种 1.在等号左边的值就称为左值而在等号右边的称为右值 2.另外在c++中还有一种判别方法就是可以取地址,有名的就是左值,不能取地址,没有名的就是右值 例如: a = b + c a在 ...
分类:
编程语言 时间:
2017-10-13 10:28:37
阅读次数:
215
对于普通类型的对象来说,它们之间的复制是很简单的,例如:int a=88;int b=a; 而类对象与普通对象不同,类对象内部结构一般较为复杂,存在各种成员变量。下面看一个类对象拷贝的简单例子。 #include <iostream>using namespace std;class CExampl ...
分类:
编程语言 时间:
2017-10-11 18:14:52
阅读次数:
144