摘要:
C++模板 模板是泛型的基础,泛型编程就是一种独立于任何特殊类型的方式编写代码。模板就是创建泛型类或泛型函数的蓝图。STL库中的几个数据结构(vector,list,map等)以及算法都使用了泛型。 函数模板 格式:template <typename type> return-type funct 阅读全文
摘要:
C++动态内存 同C,C++中也是有堆和栈的概念。栈是函数内部声明的所有变量都所占用空间,堆是程序中未使用的内存,在程序运行期间可用于动态分配。 同样也有alloc()分配内存,新增了new和delete运算符来分配释放内存 new和delete new关键字用来分配一种类型的内存:new type 阅读全文
摘要:
异常处理 参考:cnblogs 异常和错误(bug) 异常:是程序开发过程中必须考虑的一些特殊情况,是程序运行时可以预料的执行分支。异常是不可以避免的,如0除问题,数组越界问题,文件不存在问题等。但是可以处理,通过抛出,捕获异常,可以使程序继续运行。 错误:是程序的缺陷,是程序运行时无法预料的运行方 阅读全文
摘要:
C++文件和流 C++文件的读写流用的是fstream库,它定义了三个新的数据类型: | 数据类型 | 描述 | | | | | ofstream | 该数据类型表示输出文件流,用于创建文件并向文件写入信息。 | | ifstream | 该数据类型表示输入文件流,用于从文件读取信息。 | | fs 阅读全文
摘要:
C++多态 继承和派生 当类之间存在层次结构,并且类之间是通过继承关联时,就会用到多态 如:shape类被派生为两个类:Rectangle和Triangle #include<iostream> using namespace std; class Shape{ protected: int wid 阅读全文
摘要:
运算符重载和函数重载 重载是c++多态性的一大体现,重载运算符是给运算符添加新的定义,使之前不能运算的对象变得可运算,且一般和运算符的意义相似. 函数重载主要是同名函数参数类型不同,参数个数不同,实现不同的功能 运算符重载 运算符重载一般作用于类的对象运算,因为它需要相同返回类型和参数,运算符重载依 阅读全文
摘要:
类的访问控制和继承 类的静态成员 类的静态成员用关键字static修饰,类似静态变量或静态函数,也是有共享的概念 类的静态变量: 静态变量在类的所有对象中共享,不能再类的定义中初始化,但可以在类外部通过作用域符::来初始化,或通过对象初始化 class box{ public: static int 阅读全文
摘要:
友元函数、内联函数和this指针 友元函数 友元函数是定义在类的外部,但有权访问类的所有私有(private)和保护(protectd)成员.友元函数的原型在类的定义中出现,但它并不是类的成员函数 友元不止可以是函数,还可以是类,称为友元类 声明友元函数/类,用friend关键字 如: #inclu 阅读全文
摘要:
移动构造函数[C11新增] 参考:知乎:C++11右值引用和移动构造函数详解.知乎:什么是POD数据类型. C++ 11之前,对象的拷贝由三个函数决定:拷贝构造函数,拷贝赋值运算符和析构函数。 C++ 11新增两个函数:移动构造函数和移动赋值运算符。 首先介绍移动语义(move),指以移动的方式而非 阅读全文
摘要:
构造函数和复制构造函数 构造函数 对于需要传值的构造函数,如 class box{ protected: int X; int Y; int Z; public: box(int,int,int); }; box::box(int x,int y,int z){ X=x; Y=y; Z=z; } 可 阅读全文