C++ 基础
文章平均质量分 76
lianliange85
这个作者很懒,什么都没留下…
展开
-
C++的Json解析库:jsoncpp
JSON(JavaScript Object Notation)跟xml一样也是一种数据交换格式,了解json请参考其官网http://json.org,本文不再对json做介绍,将重点介绍c++的json解析库的使用方法。json官网上列出了各种语言对应的json解析库,作者仅介绍自己使用过的两种C++的json解析库:jsoncpp(v0.5.0)和Boost(v1.34.0)。 1.转载 2014-02-20 16:35:45 · 1067 阅读 · 0 评论 -
Basic Concept
1.ADT抽象数据类型(Abstract Data Type)是指一个数学模型以及定义在该模型上的一组操作。ADT包括数据数据元素,数据关系以及相关的操作。即ADT{数据对象:(数据元素集合)数据关系:(数据关系二元组结合)基本操作:(操作函数的罗列)}抽象数据类型(ADT)是一个实现包括储存数据元素的存储结构以及实现基本操作转载 2014-12-25 17:45:01 · 482 阅读 · 0 评论 -
C++ 虚函数表解析
前言C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。 关于虚函数的使用方法转载 2014-11-03 10:36:07 · 410 阅读 · 0 评论 -
ENUM C++
ENUM概况enum枚举类型是C/C++中的一种数据类型,与struct和class一样是用户自定义的类型,其特点在于enum类型的变量取值是有限的,是可以一一列举出来的。 ENUM定义C++ enum枚举格式:enum {};enum {}; 第一个C++ enum枚举值对应着一个整型数,通常情况下如果其中的枚举常量没有定义数值,转载 2014-10-31 15:06:38 · 650 阅读 · 0 评论 -
C++静态成员变量和静态成员函数
数据成员可以分静态变量、非静态变量两种. 静态成员:静态类中的成员加入static修饰符,即是静态成员.可以直接使用类名+静态成员名访问此静态成员,因为静态成员存在于内存,非静态成员需要实例化才会分配内存,所以静态成员不能访问非静态的成员..因为静态成员存在于内存,所以非静态成员可以直接访问类中静态的成员. 非成静态员:所有没有加Static的成员都是非静态成员,当类被实例化之后,可以转载 2014-10-19 11:04:35 · 431 阅读 · 0 评论 -
C++ 对象内存布局 (下)
重复继承 下面我们再来看看,发生重复继承的情况。所谓重复继承,也就是某个基类被间接地重复继承了多次。 下图是一个继承图,我们重载了父类的f()函数。 其类继承的源代码如下所示。其中,每个类都有两个变量,一个是整形(4字节),一个是字符(1字节),而且还有自己的虚函数,自己overwrite父类的虚函数。如子类D中,f()覆盖了超类的函数, f1()和f2() 覆盖转载 2014-11-04 17:06:21 · 412 阅读 · 0 评论 -
C++ 对象的内存布局
转自:陈皓转载 2014-11-04 16:48:13 · 424 阅读 · 0 评论 -
C++ 容器vector 理解
通过设置一些模版类,STL容器对最常用的数据结构提供了支持,这些模板的参数允许我们指定容器中元素的数据类型,可以将我们许多重复而乏味的工作简化转载 2014-10-31 17:00:40 · 664 阅读 · 0 评论 -
C++标准库pair
与关联容器相关的模板类型,包含两个数据成员,在utility头文件中定义.pair类型提供的操作:pair p1;pair p1(v1,v2);make_pair(v1,v2);p1 p1 == p2;p.first;p.second; 1.创建和初始化: pair name; pair> da转载 2014-03-21 16:31:18 · 563 阅读 · 0 评论 -
C++ string.find()
#include #include using namespace std;int main(){ ////find函数返回类型 size_typestring s("1a2b3c4d5e6f7g8h9i1a2b3c4d5e6f7g8ha9i");string flag;string::size_type position;//find 函数 返回jk 在s 中的下标位置转载 2014-02-19 15:34:16 · 565 阅读 · 0 评论 -
C++ 引用与指针
下面用通俗易懂的话来概述一下:指针-对于一个类型T,T*就是指向T的指针类型,也即一个T*类型的变量能够保存一个T对象的地址,而类型T是可以加一些限定词的,如const、volatile等等。见下图,所示指针的含义:引用-引用是一个对象的别名,主要用于函数参数和返回值类型,符号X&表示X类型的引用。见下图,所示引用的含义:2、指针和引用的区别转载 2014-02-18 17:37:54 · 514 阅读 · 0 评论 -
C++ 命名空间namespace
命名空间在C++中,名称(name)可以是符号常量、变量、宏、函数、结构、枚举、类和对象等等。为了避免,在大规模程序的设计中,以及在程序员使用各种各样的C++库时,这些标识符的命名发生冲突,标准C++引入了关键字namespace(命名空间/名字空间/名称空间/名域),可以更好地控制标识符的作用域。MFC中并没有使用命名空间,但是在.NET框架、MC++和C++/CLI中,都大量使用了命名转载 2014-02-17 14:45:10 · 526 阅读 · 0 评论 -
C++命名空间
在标准C++以前,都是用#include这样的写法的,因为要包含进来的头文件名就是iostream.h。标准C++引入了名字空间的概念,并把iostream等标准库中的东东封装到了std名字空间中,同时为了不与原来的头文件混淆,规定标准C++使用一套新的头文件,这套头文件的文件名后不加.h扩展名,如iostream、string等等,并且把原来C标准库的头文件也重新命名,如原来的string.h就转载 2014-02-17 12:31:31 · 506 阅读 · 0 评论 -
C++ unnion
摘自C++ PRIMER & C PROGRAMING:1.缺省情况下 union 的成员都是公有成员 union 的名字可以被用在任何类名可以被使用的地方 例如:// TokenValue类型的对象TokenValue last_token;// TokenValue 类型对象的指针TokenValue *pt = new TokenValue;原创 2014-12-28 16:48:06 · 565 阅读 · 0 评论