拷贝构造函数详解

什么是拷贝构造函数 首先对于普通类型的对象来说,它们之间的复制是很简单的,例如: int a = 100; int b = a; 而类对象与普通对象不同,类对象内部结构一般较为

空类产生几个默认成员函数?

空类声明时不会生成任何默认成员函数 对于空类,编译器不会生成任何默认成员函数,只会生成1个字节的占位符。 有时可能会以为编译器会为空类生成默认构

解析“inline”

inline与宏定义 inline 关键字用来定义一个类的内联函数,引入它的主要原因是用它替代C中表达式形式的宏定义。为什么inline能很好地取代预定义

性能杀手:”潜伏”的memset

memset性能陷阱 memset是大家常用的函数,而且一般的编程书籍都会谆谆告诫大家:申请内存后要初始化,防止使用未经初始化的内存导致不可预

详解char类型

概述 char用来定义字符型变量,在内存中占1字节,范围是-128~127. 有以下两种存储方式: 将一个整型常量放到一个字符变量中,实际就是把以

解析“mutable

在C++中,mutable也是为了突破const的限制而设置的。被mutable修饰的变量,将永远处于可变的状态,即使在一个const函数中

解析“volatile”

volatile概述 volatile 关键字是一种类型修饰符,用它声明的类型变量表示可以被某些编译器未知的因素更改,比如:操作系统、硬件或者其它线程等。遇到

C++中的强制类型转换

C/C++是强类型语言,不同类型之间的相互转换是比较麻烦的.但是在编程实践中,不可避免的要用到类型转换.有2种类型转换:隐式类型转换和强制类

字符串的输入输出

scanf与printf scanf 原型:int scanf(char *format,…]); 头文件:stdio.h 返回值:返回成功读入的数据项的个数,读到文件末尾或者出错时则返回EOF(0x

printf()输出格式控制

格式化 格式化字符串 格式化整型数值 格式化浮点值(普通计数法) 格式化浮点值(科学计数法) 补充:E是exponent,表示以10为底的指数 prin

STL迭代器及辅助函数

迭代器类型 辅助函数 本文介绍了STL中的迭代器辅助函数的用法及注意事项,这些迭代器辅助函数包括:begin,end,advance, next (since C++11), prev (since

作用域与{}

在C/C++中大括号指明了变量的作用域,在大括号内声明的局部变量其作用域自变量声明始,到大括号之后终结。我们应该善用它,使我们的程序更加清晰

int32_t,int64_t

数据类型 数据类型特别是int相关的类型在不同位数机器的平台下长度不同。C99标准并不规定具体数据类型的长度大小,只规定级别。作下比较: 16位

字符集和编码

1、字符集与字符编码 字符是各种文字和符号的总称,包括各个国家文字、标点符号、图形符号、数字等。字符集是多个字符的集合,字符集种类较多,每个字

解析“const”

const的用法 修饰变量 修饰常量 与变量不同,有const修饰的量是常量,常量的值不可改变,在定义的时候必须初始化,使用未初始化的常量是错误的

C++的万能头文件

所谓的C++万能头文件,缺点是编译时间慢,优点无需多说。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 #include<bits/stdc++.h>

解析“extern”

基本解释 extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。此外e

前向声明

定义 有些时候我们可以声明一些类但是并不去定义它,当然这个类的作用也很有限了。 比如class foo; 声明一个foo类,这个声明,有时候也叫做前向声明

友元浅析

友元函数的简单介绍 为什么要使用友元函数 在实现类之间数据共享时,减少系统开销,提高效率。如果类A中的函数要访问类B中的成员(例如:智能指针类的