C++ primer plus学习笔记
开心an
这个作者很懒,什么都没留下…
展开
-
第二章(开始学习C++)
l 进入C++在c语言中,省略返回类型相当于说函数的类型为int。C++淘汰了这种用法作为接口的函数头,可以使用下面的形式int main();/int main(void);在C++中(不是C中),让括号空着与在括号中使用void等效。(在C中,原创 2011-09-28 17:05:33 · 584 阅读 · 0 评论 -
第11章——使用类
l 操作符重载操作符函数的格式:operator op(argument-list)op必须是有效的C++操作符,不能虚构一个新的符号。如果district2,sid和salesperson都是类对象,且重载了+操作符。便可以编写这样的等式:district2=sid+salesperson编译器会做这个的替换:district2=sid.operator+原创 2011-11-06 16:25:17 · 531 阅读 · 0 评论 -
第16章——string类和标准模板库
l string 类string类是由头文件string支持的。头文件string.h和cstring支持对C-风格字符串时行操纵的C 库字符串函数。string类的6个构造函数构造函数描述string(const char*s)将string对象初始化为s指向的NBTS(空格结束的字符串)原创 2011-11-30 16:03:52 · 2642 阅读 · 1 评论 -
第12章——类和动态分配内存
使用new操作符可以在程序运行时分配所需的内存l 动态内存和类eg:#include #ifndef STRNGBAD_H_#define STRNGBAD_H_class StringBad{private: char * str; // pointer to string int len;原创 2011-11-10 14:28:59 · 503 阅读 · 0 评论 -
第17章——输入、输出和文件
标准类库是一个非正式的标准,只是由头文件iostream和fstream中定义的类组成。l 流和缓冲区C++程序把输入和输出看作字节流。输入时,程序从输入流中抽取字节;输出时,程序将字节插入到输出流中。管理流和缓冲区的工作有点复杂,不过iostream文件中包含了一些专门设计用来实现、管理流和缓冲区的类。一些类:n streambuf类为缓冲区提原创 2011-12-01 17:11:46 · 1504 阅读 · 0 评论 -
vector list
vector 表示一段连续的内存区域每个元素被顺序存储在这段内存中对vector 的随机访问比如先访问元素5 然后访问15 然后再访问7 等等效率很高因为每次访问离vector起始处的位移都是固定的但是在任意位置而不是在vector 末尾插人元素则效率很低因为它需要把待插入元素右边的每个元素都拷贝一遍类似地删除任意一个而不是vector的最后一个元素效率同样很低因为待删除元素右边的每个转载 2012-04-16 10:55:27 · 390 阅读 · 0 评论 -
C++ cast 总结
const_cast:It's only used to add or remove qualifiers: const or volatile. Note: static_cast can add const and can never remove const.reinterpret_cast:It never does any check, neither compile转载 2012-04-16 14:39:15 · 747 阅读 · 0 评论 -
c_str的用法
c_str函数的返回值是const char*的,不能直接赋值给char*,所以就需要我们进行相应的操作转化,下面就是这一转化过程。c++语言提供了两种字符串实现,其中较原始的一种只是字符串的c语言实现。与C语言的其他部分一样,它在c++的所有实现中可用,我们将这种实现提供的字符串对象,归为c-串,每个c-串char*类型的。标准头文件包含操作c-串的函数库。这些库函数表达转载 2012-04-17 20:19:02 · 469 阅读 · 0 评论 -
用Qt中的QDomDocument类处理XML文件
XML,全称为扩展标记语言(extensible markup language).是一种非常方便的数据交换工具。现在Blog的订阅系统输出格式就是满足XML规范的RSS格式,还有SVG矢量图形也使用了XML格式。我们在取得一个XML格式的文件后,需要作句法分析去提取发布方提供的信息。而Qt为XML提供了很好的支持,包括DOM的实现和SAX的实现。DOM是Document Object M转载 2012-04-17 20:44:36 · 621 阅读 · 0 评论 -
C++类关系(个人笔记)
工作中涉及到一些类与继承类之间的关系,常常会被搞晕。现在搞个总结。以下是代码 :输出结果:pubshowpubBshowproBBBshowproshowprishowin repeat_prishowpubshowclassA get paraA :30 说明:一、a.prishow()和a.proshow()编译不过,说明在类的外原创 2012-04-02 12:53:53 · 1082 阅读 · 0 评论 -
深入理解C++中的mutable关键字
mutalbe的中文意思是“可变的,易变的”,跟constant(既C++中的const)是反义词。 在C++中,mutable也是为了突破const的限制而设置的。被mutable修饰的变量,将永远处于可变的状态,即使在一个const函数中。 我们知道,如果类的成员函数不会改变对象的状态,那么这个成员函数一般会声明成const的。但是,有些时候,我们需要在const的函数里面转载 2012-06-06 13:40:43 · 557 阅读 · 0 评论 -
class 和 struct
这篇文章解决以下几个问题:1.结构体可以被类继承吗2.结构体变量中含有字符串,可以直接赋值吗3.C语言中的结构体使用与C++中的使用有不同的地方吗4.如何重载操作符代码:(vc6.0 win32 console application)#include "stdafx.h"#include #include typedef struct原创 2016-09-19 13:41:11 · 297 阅读 · 0 评论 -
第15章——友元、异常和其他
l 友元类并非只能拥有友元函数,也可以将类作为友元eg:class Tv{ public: friend class Remote; …}; class Remove{…};友元声明可以位于公有、私有或保护部分,其所在位置无关紧要。 也可以选择仅让特定的类成员成为另一个类的友元原创 2011-11-23 16:20:27 · 742 阅读 · 1 评论 -
第14章——C++的代码重用
C++的一个主要目标是促进代码重用。公有继承是实现这种目标的机制之一,但并不是惟一的机制。还有包含,私有继承和保护继承。通常他们是用来实现has-a关系。l 包含对象的类就是类的成员本身又是另外一个类的对象。eg:class student{ private: string name;原创 2011-11-17 17:17:33 · 653 阅读 · 0 评论 -
第9章——内存模型和名称空间
l 单独编译C++鼓励程序员在开发程序时使用多个文件。一种有效的组织策略是,使用头文件来定义用户类型,为操纵用户类型的函数提供函数原型;并将函数定义放在一个独立的源代码文件中。头文件和源代码文件一起定义和实现了用户定义的类型及使用方式。最后,将main()和其原创 2011-10-11 13:35:36 · 936 阅读 · 0 评论 -
第三章(处理数据)
l 面向对象编程(OPP)的本质是设计并扩展自己的数据类型。设计自己的数据类型就是让类型与数据匹配。内置的C++类型分两种:基本类型和复合类型。C++变量命名规则:n 在名称中只能使用字母字符、数字和下划线n 名称的第一原创 2011-09-29 15:10:15 · 757 阅读 · 0 评论 -
第一章(预备知识)
l C++简史20世纪80年代,C语言在结构化编程中占据统治地位。这时,也出现了面向对象编程(OPP),C++具备这种功能。 计算机的编程理念:数据和算法。C语言强调的是编程的算法方面,从概念上讲,过程化编程首先确定计算机采取的操作,然后使用编程语原创 2011-09-28 17:03:43 · 604 阅读 · 0 评论 -
第10章——对象和类
l 面向对象编程强调的是程序如何表示数据。使用OOP方法解决编程问题的第一步是根据它与程序之间的接口来描述数据,从而指定如何使用数据。然后,设计一个类来实现该接口。一般来说,私有数据成员存储信息,公有成员函数(又称为方法)提供访问数据的唯一途径。类将数据和方法组合原创 2011-10-12 14:08:28 · 558 阅读 · 0 评论 -
第4章——复合类型
l 数组只有在定义数组时才能使用初始化,此后就不能使用了,也不能将一个数组赋给另一个数组int cards[4]={3,6,8,10};如果只对一部分数组初始化,则编译器把其它元素设为0;float hoteltips[5]={5.0,2.5};原创 2011-09-30 17:19:04 · 574 阅读 · 0 评论 -
第6章——分支结构和逻辑操作符
l if语句l 逻辑表达式并不是所有的键盘都提供了逻辑操作符的符号,因此C++提供了另一种表示方式:n && 替换代表andn ||替换代表orn !替换代表not标识符and原创 2011-10-07 22:19:34 · 593 阅读 · 0 评论 -
第5章——循环和关系表达式
l for循环for(initialization;text-expression;update-expression) bodyC++将整个for看作一个语句。C++并没有将test-expression的值限制为只能为真或假。可以使用任原创 2011-10-06 16:31:43 · 666 阅读 · 0 评论 -
第7章——函数
l 函数的基本知识创建自己的函数时,必须自行处理3个方面n 定义n 提供原型(其它的书称为函数声明)n 调用l 函数参数和按值传递eg:double cube(double x原创 2011-10-08 16:50:49 · 527 阅读 · 0 评论 -
第8章——函数探幽
l C++内联函数内联函数是C++为提高程序运行速度所做的一项改进。相对于非内联函数,系统内存只存在一个此函数。如果调用,就会使程序指针来回跳跃,需要一定的开销。而内联函数相当于静态函数,系统内存里在需要执行到的地方都有一个拷贝。基于内联函数这个特点,它应该经原创 2011-10-10 10:18:21 · 875 阅读 · 2 评论 -
第13章——类继承
l 派生一个类eg:class RatedPlayer:public TableTennisPlayer{…};派生类不能直接访问基类的私有成员,而必须通过基类的方法进行访问。 创建派生类对象时,程序首先创建基类对象。C++使用成员初始化列表句法来完成这种工作。RatedPlayer::RatedPlayer(unsigned int r,const cha原创 2011-11-14 15:55:14 · 557 阅读 · 0 评论 -
C++之“友元类”学习笔记
=======================什么是友元类======================= 当一个类B成为了另外一个类A的“朋友”时,那么类A的私有和保护的数据成员就可以被类B访问。我们就把类B叫做类A的友元。=======================友元类能做什么======================= 友元类可以通过自己的方法转载 2016-09-26 21:34:37 · 297 阅读 · 0 评论