分类
善良比聪明更重要
C++中new与malloc区别 C++中new与malloc区别
申请的内存所在位置new 操作符从自由存储区上为对象动态分配内存空间,而 malloc 函数从堆上动态分配内存。自由存储区是 C++ 基于 new 操作符的一个抽象概念,凡是通过 new 操作符进行内存申请,该内存即为自由存储区。而堆是操作
2019-04-04
C++ 流缓冲区 C++ 流缓冲区
C++ 的 I/O 是通过标准库中输入输出流来实现的。标准库在 iostream 头文件当中,预定义了六个流对象,他们是: * istream > class basic_ios; // : public ios_base 由于 std
2019-03-23
C++命令行参数 C++命令行参数
前言我们在 Linux 用到的命令常常支持很多参数,那么如何写一个程序,也像 Linux 命令一样支持很多参数呢?有什么优雅的处理方法? 命令行参数在介绍如何处理命令行参数之前,简单介绍一下命令行参数,已经了解的朋友可以跳过此小节。我们用一
2019-03-11
std::ref std::ref
C++ 本身有引用 &,为什么 C++11 又引入了 std::ref?主要是考虑函数式编程如 std::bind 在使用时,是对参数直接拷贝,而不是引用。如下例子: void f(int& n1, int& n2,
2019-02-27
friend friend
原则上, 类的私有和受保护成员不能从声明它们的同一类外部访问。但是, 此规则不适用于友元friends。以 friend关键字修饰的函数或类称为友元函数或友元类。 友元函数友元函数是可以直接访问类的私有成员的非成员函数。它是定义在类外的普通
2019-02-15
拷贝构造函数与赋值函数 拷贝构造函数与赋值函数
在进行 C++类编写的过程之中,通常会涉及到类的拷贝构造函数与类的赋值函数。初涉类编写的代码,对于两类函数的用法一直是挺让人困惑的内容。这篇文章我们会详细来梳理拷贝构造函数与赋值函数的区别。 调用了哪个函数上述两种函数的使用和 C++之中类
2019-02-03
sizeof、strlen、数组、字符串 sizeof、strlen、数组、字符串
对于初学者来说,sizeof,strlen,数组,字符串整在一起是痛苦的,本文看看它们在一起能挖什么坑。 例子在说明这些问题之前,先看一段代码,看看你是否都理解了。注:以下代码结果为编译为 64 位程序后运行结果。 void testArr
2019-01-22
二维数组 二维数组
二维数组我们知道 C 语言没有真正意义上的二维数组。二维数组的实现,只是简单地通过“线性扩展”的方式进行。 int b[4][5]; 就是定义 4 个元素,每个元素都是一个包含 5 个整型变量的一维数组。它在内存中依然是以线性的形式存储。
2019-01-10
语言链接 语言链接
提供以不同程序语言编写的模块间的连接。 extern 字符串字面量 { 声明序列(可选) } (1) extern 字符串字面量 声明 (2) 1) 将语言说明字符串字面量应用到声明于声明序列中的所有函数类型,具有外部连接的
2018-12-29
枚举申明 枚举申明
枚举enumeration是独立的类型,其值限制在一个取值范围内,它可以包含数个明确命名的常量。各常量的值是某个整型类型(称为该枚举的底层类型underlying type)的值。 enum-关键词 attr(可选) enum-名(可选)
2018-12-17
指针 指针
声明指针或指向成员指针类型的变量。 语法指针的声明是简单声明,其声明符拥有下列形式 * attr(可选) cv(可选) 声明符 (1) 嵌套名说明符 * attr(可选) cv(可选) 声明符 (2) 1) 指针声明符:声明
2018-12-05
C++ 引用 C++ 引用
声明具名变量为引用,即既存对象或函数的别名。 引用变量声明是声明符拥有下列形式的简单声明 & attr(可选) 声明符 (1) && attr(可选) 声明符 (2) (C++11 起) 1) 左值引用声明符:声明 S
2018-11-23
2 / 2