C++
文章平均质量分 73
mightZhong
这个作者很懒,什么都没留下…
展开
-
C++的重载、覆盖和隐藏
C++的重载、覆盖、隐藏这三个类似的概念,容易混淆,所以网上找了些资料,加上自己的理解,记录在这里。根据《高质量C++编程指南》的分析,介绍了这三个概念的不同:成员函数被重载的特征:(1)相同的范围(在同一个类中,不同的类里即使使用相同的函数名和参数类型也能相安无事);(2)函数名字相同;(3)参数不同;(4)virtual 关键字可有可无。本质是编译后原创 2015-04-15 10:06:32 · 782 阅读 · 0 评论 -
C++容器操作
转载自:http://6924918.blog.51cto.com/6914918/1275726C++中的容器大致可以分为两个大类:顺序容器和关联容器。顺序容器中有包含有顺序容器适配器。顺序容器:将单一类型元素聚集起来成为容器,然后根据位置来存储和访问这些元素。主要有vector、list、deque(双端队列)。顺序容器适配器:stack、queue和priority_queue。转载 2015-09-23 09:13:59 · 5913 阅读 · 1 评论 -
C++的构造、析构函数
构造、析构函数的由来:由于C++类是许多成员函数和成员变量的集合,在实例化一个类时肯定需要将其内部变量初始化,而这个工作如果由程序员在创建对象后显示调用初始化函数完成,恐怕难免会有疏漏,所以C++之父发挥程序员“”懒惰“的特性,规定了两个函数分别是构造和析构函数,来完成初始化和清理工作,而这两个函数很重要的一点是,他们是在对象创建和消亡时自动执行的。特别的是,如果程序员没有定义构造原创 2015-04-17 10:04:59 · 661 阅读 · 0 评论 -
C++的虚函数和多态性
以实例入手,如果分别用c和c++来实现计算各种图形周长和面积的程序(很老套但能说明问题),很快就能画出这样的框架:c:创建三个源文件(头文件中声明函数),大致就是perimeter.c, area.c, main.c,在使用时调用不同的图形对应的周长计算函数和面积计算函数即可,灵活高效,但如果在命名上不太注意的话,就会显得吃力。c++: 先创建一个头文件shape.h,定义需要用到原创 2015-04-07 11:23:58 · 1124 阅读 · 0 评论 -
Hash表
#include #include using namespace std;const int NAME_NO = 20;const int TABLE_SIZE = 50;typedef struct { char *py; int sum;}Name;typedef struct{ char *py; int sum; int si;}Hash;Name原创 2015-08-26 12:43:39 · 715 阅读 · 1 评论 -
effective c++
C++可分为4个次语言:C、Object-oriented C++、Template C++、STL,在这4者中,C最基本,Object-oriented C++最重要(封装、继承、多态、动态绑定), Template C++(泛型编程)最少用,STL最实用(容器、迭代器、算法)原创 2015-06-18 09:28:34 · 569 阅读 · 0 评论 -
C++中的指针与引用详细解读
转载地址:http://developer.51cto.com/art/201505/476354_all.htm1、指针和引用的定义 在深入介绍之前我们首先来看一下指针和引用的定义、指针和引用的区别,然后分别针对指针和引用展开讨论,深入细节为何有这些差异。指针的权威定义:In a declaration T D where D has the form * c转载 2015-05-14 16:40:47 · 1140 阅读 · 0 评论 -
C++的string
要想使用标准C++中string类,必须要包含#include // 注意是,不是,带.h的是C语言中的头文件using std::string;using std::wstring;或using namespace std;下面你就可以使用string/wstring了,它们两分别对应着char和wchar_t。string和wstring的用法是一样的,以下只用转载 2015-05-04 14:59:26 · 533 阅读 · 0 评论 -
C++的异常处理
异常是通过抛出对象而引发的。异常以类似于将实参传递给函数的方式抛出和捕获。异常捕获(catch)时,如果抛出(throw)发生在被调用函数中,则此时该被调用函数中的局部存储都以释放,catch所处理的对象,是被抛出对象的副本,由throw表达式初始化,成为异常对象。该对象由编译器管理,驻留在可能被激活的任意catch都可以访问的空间。catch处理完后,该对象撤销。如果在抛出表达式中出原创 2015-04-28 11:05:44 · 796 阅读 · 0 评论 -
C++的命名空间
1、命名空间的由来:一个程序由多个模块组成,而不同的模块中全局变量名或函数名相同的问题不可避免,这将会产生链接错误。C++中引入命名空间的概念就是为了解决名称冲突问题。2、命名空间的本质(个人观点):一个命名空间是一个作用域,使用它来声明一批名称(变量名,类名,函数名)来自该空间,以唯一地确定这些名称。3、命名空间的定义:1)命名空间以关键字namespace开始,原创 2015-04-29 11:11:08 · 1354 阅读 · 1 评论 -
排序
1.插入排序 1)将整个数组看成待排序数组(本来就是,呵呵) 2)将第一个数看成已排序数列,第二个数看成待排序的数,将其插入到已排序数列,其实就是跟第一个数比大小,小于就插在前面,大于即插在后面 3)将第三个数看成待排序的数,重复第二个步骤,以此类推,直到最后一个数 void insert_sort(int a[], int n){ int tmp; /*待排序部分*/ for原创 2015-07-13 09:59:17 · 636 阅读 · 0 评论