随笔分类 - C++
摘要:模板是泛型编程的基础,泛型编程即以一种独立于任何特定类型的方式编写代码。 模板是创建泛型类或函数的蓝图或公式。库容器,比如迭代器和算法,都是泛型编程的例子,它们都使用了模板的概念。 每个容器都有一个单一的定义,比如 向量 ,我们可以定义许多不同类型的向量,比如 vector \ 或 vector \
阅读全文
摘要:合理地使用 C++ 异常处理,能够使我们写出来的程序更加稳定强健,不易崩溃。那么,应该如何使用 C++ 异常处理呢?下面,我们就来向大家介绍最简单也是最常用的异常处理语句 。 一、什么是异常 用官方的话来说就是程序在执行过程中产生的问题,换句通俗的话来讲就是程序执行的出现的异常,比如程序崩了、内存泄
阅读全文
摘要:本教程介绍如何从文件读取流和向文件写入流。这就需要用到 C++ 中另一个标准库 fstream ,它定义了三个新的数据类型: | 数据类型 | 描述 | | | | | ofstream | 该数据类型表示输出文件流,用于创建文件并向文件写入信息。 | | ifstream | 该数据类型表示输入文
阅读全文
摘要:在 C++语言中,可以用关键字 operator 加上 运算符 来表示函数,叫做运算符重载。例如两个 Box 对象相加函数: 可以用运算符重载来表示: 运算符与普通函数在调用时的不同之处是:对于普通函数,参数出现在圆括号内;而对于运算符,参数出现在其左、右侧。例如: 从语法上讲,运算符既可以定义为全
阅读全文
摘要:C++ 在 C 语言的基础上增加了面向对象编程,C++ 支持面向对象程序设计。类是 C++ 的核心特性,通常被称为用户定义的类型。 类用于指定对象的形式,它包含了数据表示法和用于处理数据的方法。类中的数据和方法称为类的成员。 1 C++ 类定义 类定义是以关键字 class 开头,后跟类的名称。类的
阅读全文
摘要:C++ 标准库没有提供所谓的日期类型。C++ 继承了 C 语言用于日期和时间操作的结构和函数。为了使用日期和时间相关的函数和结构,需要在 C++ 程序中引用 头文件。 有四个与时间相关的类型: clock_t、time_t、size_t 和 tm 。类型 clock_t、size_t 和 time_
阅读全文
摘要:因为结构体有时候需要 字节对齐 。一般而言,struct 的 sizeof 是所有成员字节对齐后长度相加,而 union 的 sizeof 是取最大的成员长度。 在默认情况下,编译器为每一个变量或数据单元按其自然对界条件分配空间。一般地,可以通过下面的方法来改变默认的对界条件: (1) 使用伪指令
阅读全文
摘要:类所占内存的大小是由成员变量(静态变量除外)决定的,成员函数(这是笼统的说,后面会细说)是不计算在内的。 示例如下: (一) class CBase { }; sizeof(CBase)=1; 为什么空的类什么都没有是 1 呢? c++要求每个实例在内存中都有独一无二的地址。空类也会被实例化,所以编
阅读全文
摘要:C++ 既支持 C 风格的类型转换,又有自己风格的类型转换。C 风格的转换格式很简单,但是有不少缺点: 转换太过随意,可以在任意类型之间转换。你可以把一个指向 const 对象的指针转换成指向非 const 对象的指针,把一个指向基类对象的指针转换成一个派生类对象的指针,这些转换之间的差距是非常巨大
阅读全文
摘要:重载,覆盖(重写),隐藏(重定义) 这几个名词看着好像很像,不过其实差别很大! 一、重载 (1) 概念: 在同一个作用域内;函数名相同,参数列表不同(参数 个数不同 ,或者参数 类型不同 ,或者 参数个数和参数类型都不同 ),返回值类型可相同也可不同;这种情况叫做c++的重载! (2) 特征: 在同
阅读全文
摘要:以下分析一下,声明对象指针,调用构造、析构函数的多种情况,先定义以下的一个基类与派生类。 c++ CBase CBase1 = NULL; / 输出结果: (NULL) / c++ CBase pCBase = new CDerived(); delete pCBase; / 输出结果: CBase
阅读全文
摘要:一、C++中的命名空间 C++中使用命名空间来解决在相同文件或范围的同名变量问题,示例程序如下: c++ int main() { if 0 //第1种:直接声明使用 std::cout 三、自动类型转换的四种情况 在C/C++中有以下四种情况会发生自动类型转换: c++ int a; int &r
阅读全文