C++知识总结
文章平均质量分 92
Tianzez
稳健
展开
-
C++——类和对象
C++知识总结目录索引1. 类和对象的定义类:类是一个模板,它描述一类对象的行为和状态。对象:对象是类的一个实例(不是你女朋友),有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。下图中男孩女孩为类,而具体的每个人为该类的对象: < code >class String { //一个String类publi...原创 2018-03-23 16:08:58 · 745 阅读 · 0 评论 -
C++ —— vector容器
C++知识总结目录索引1. resize()2. reserve()3. operator[]4. assign()5. insert()6. erase()7. clear()1. resize()void resize (size_type n, value_type val = value_type());调整数组的容量,接受两个参数。 1. 如果 ...原创 2018-06-03 15:57:42 · 2052 阅读 · 0 评论 -
C++ —— 经典面试题
C++知识总结目录索引1. 哪些成员函数不能被继承。 C++中,并不是所有的成员函数都能被子类继承,有三类成员函数不能被子类继承,分别是:构造函数(包括拷贝构造)、析构函数、赋值运算符重载函数。1. 构造函数 构造方法用来初始化类的对象,与父类的其它成员不同,它不能被子类继承(子类可以继承父类所有的成员变量和成员方法,但不继承父类的构造方法)。因此,在创建子类对象时,为...原创 2018-04-29 09:00:20 · 4798 阅读 · 0 评论 -
C++ —— 模板
C++知识总结目录索引本文目录:一、模板的基本概念1. 什么是模板2. 模板的分类(1)模板函数①书写格式②代码示例③调用规则(2)模板类①书写格式②代码示例三、非类型模板参数四、特化类型萃取五、模板的分离编译一、模板的基本概念1. 什么是模板 模板就是实现代码重用机制的一种工具,它可以实现类型参数化,即把类型定义为参数...原创 2018-05-13 15:36:21 · 414 阅读 · 0 评论 -
为什么C++编译器不能支持对模板的分离式编译 ?
本文转自:刘未鹏(pongba),只作为学习使用,如有侵权请告知。 首先,一个编译单元(translation unit)是指一个.cpp文件以及它所#include的所有.h文件,.h文件里的代码将会被扩展到包含它的.cpp文件里,然后编译器编译该.cpp文件为一个.obj文件(假定我们的平台是win32),后者拥有PE(Portable Executable,即windows可执行文件)...转载 2018-05-09 10:42:47 · 594 阅读 · 1 评论 -
重载、重写和隐藏三者的区别
C++知识总结目录索引1. 重载 重载:同一作用域内被声明的几个具有不同参数列表(参数的类型,个数,顺序不同)的同名函数,根据参数列表确定调用哪个函数,重载不关心函数返回类型。class A{public: void Swap(int* a, int* b); //overload int Swap(long* a, long* b); //...原创 2018-04-30 17:16:49 · 2177 阅读 · 0 评论 -
C++——多态
C++知识总结目录索引1. 何为多态 多态一词最初来源于希腊语,意思是具有多种形式或形态的情形,在C++中是指同样的消息被不同类型的对象接收时导致不同的行为,这里讲的消息就是指对象的成员函数的调用,而不同的行为是指不同的实现,也就是调用了不同的函数。简而言之就是“一种接口,多种实现(方法)”。 2. 多态的分类多态可分为静态多态和动态多态,具体的分类情况如下:...原创 2018-04-23 16:56:14 · 1797 阅读 · 0 评论 -
C++——new/delete和new[]/delete[]
C++知识总结目录索引1. new/delete1. 对于简单数据类型这里的简单数据类型指的是内置类型和不需要构造函数的自定义类型。 例如:int* a = new int; 这里我们可以查看new的源代码:void *__CRTDECL operator new(size_t size) _THROW1(_STD bad_alloc) { ...原创 2018-04-05 15:15:49 · 274 阅读 · 0 评论 -
C++ —— 继承
C++知识总结目录索引1. 三种继承关系public、protected和private 在学习类的时候我们便接触了这三个关键字,当时它们是作为类的成员访问限定符,在继承当中也要用到这三个关键字,此时它们表示的是三种继承方式。对于刚学习继承的人来说,肯定都会有一个疑惑——为什么有了private还有用proected的?它俩有什么区别?含有private成员的类:其无论通过哪种继承...原创 2018-04-15 17:46:17 · 391 阅读 · 0 评论 -
C++——4个默认成员函数详解
C++知识总结目录索引本博客参照林锐《高质量程序设计指南C++/C语言》(第三版)第十三章完成 在C++中,每个类都有三种成员函数——构造函数、析构函数和赋值函数(ps:构造函数有构造函数和拷贝构造函数两种)。对于任意一个类A,如果不显式地声明定义以上函数,编译器会自动为A生成4个默认函数,如下:A(); //默认构造函数A(co...原创 2018-03-21 16:38:18 · 1452 阅读 · 0 评论 -
C++——引用详解
C++知识总结目录索引1. 什么是引用 引用不是创建一个新的变量,而是给一个已经定义的变量重新起一个别名,对引用的操作与对变量直接操作完全一样。引用的声明方法:类型标识符 &引用名=目标变量名;例如:int main(){ int a = 10; int& b = a; //b就是a的引用 cout <&l...原创 2018-03-20 16:38:47 · 449 阅读 · 0 评论 -
C++——函数重载详解
C++知识总结目录索引1. 什么是重载 重载,简单说,就是函数或者方法有相同的名称,但是参数列表不相同的情形,这样的同名不同参数的函数或者方法之间,互相称之为重载函数或者方法。 实际编程当中,有时候我们需要实现几个功能类似的函数,只是有些细节不同。例如Swap函数(用来交换两个变量的值),这两个变量有多种类型,可以是 int、float、char、bool 等,我们需要通过参数...原创 2018-03-18 20:31:18 · 4171 阅读 · 0 评论 -
C++——命名空间 & 缺省参数
C++知识总结目录索引 C++是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。C++擅长面向对象程序设计的同时,还可以进行基于过程的程序设计,因而C++就适应的问题规模而论,大小由之。 我们知道C几乎是C++子集,C++是C的plus plus版,它在C语言的基础上升级换代,加入了...原创 2018-03-23 18:53:43 · 702 阅读 · 0 评论 -
C++知识总结目录索引
01. C++——类和对象02. C++——命名空间&amp;amp;amp;缺省参数03. C++——引用详解04. C++——函数重载详解05. C++——4个默认成员函数详解06. C++——new/delete和new[]/delete[]07. C++ —— 继承08. C++ —— 多态09. C++ —— 经典面试题10. C+...原创 2018-03-23 16:14:43 · 930 阅读 · 0 评论 -
利用哈弗曼树实现文件压缩
一、基础知识1. 哈弗曼树 给定n个权值作为n个叶子结点,构造一棵二叉树,若该树的带权路径长度达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树(Huffman Tree)。哈夫曼树是带权路径长度最短的树,权值较大的结点离根较近。...原创 2018-07-12 18:35:36 · 847 阅读 · 0 评论