AloneMonkey

为了方便我们直接使用Apache+mysql+php集成开发环境。 这样的集成软件有appserv和xampp,这里我们以xampp为例。 首先下载xampp软件,下载地址:https://www.apachefriends.org/zh_cn/index.html 根据相应的平台下载即可,我下的是XAMPP for Windows。 安装完之后有一个XAMPP Control Panel有各种配 […]

● 异常是通过抛出(throw)对象而引发的。该对象的类型决定应该激活哪个处理代码。被选中的处理代码是调用链中与该对象类型匹配且离抛出异常位置最近的那个。 执行throw的时候,不会执行跟在throw后面的语句,而是将控制从throw转移到匹配的catch,该catch可以是同一函数中局部的catch,也可以在直接或间接调用发生异常的函数的另一个函数中。   ● 栈展开 异常的传播方式和 […]

● 基类和派生类 一、定义基类 1.基类成员函数 除了构造函数之外,任意非static成员函数都可以是虚函数。保留字virtual只在类内部的成员函数声明中出现,不能用在类定义体外部出现的函数定义上。基类通常应将派生类需要重定义的任意函数定义为虚函数。 2.访问控制和继承 public和protected成员都可以被派生类访问,而private成员不能被派生类访问。 3.protected成员 像 […]

● 复制构造函数 只有单个形参,而且该形参是对本类类型对象的引用(常用const修饰),这样的构造函数称为复制构造函数。与默认构造函数一样,复制构造函数可由编译器隐式调用。复制构造函数可用于: 1.根据另一个同类型的对象显式或隐式初始化一个对象。 2.复制一个对象,将它作为实参传给一个函数。 3.从函数返回时复制一个对象。 4.初始化顺序容器中的元素。 5.根据元素初始化式列表初始化数组元素。 & […]

● 类的定义和声明 Sales_item():units_sold(0),revenue(0.0){} 构造函数初始化列表由成员名和带括号的初始值组成,跟在构造函数的形参表之后,并以冒号开头。   在类内部定义的函数默认为inline。   将关键字const’加在形参表之后,就可以将成员函数声明为常量。 double avg_proce() const; cons […]

●  只读算法 int sum = accumulate(vec.begin(), vec.end(), 42); 将sum的值设置为vec的元素之和再加上42.容器内的元素类型必须与第三个实参的类型匹配,或者可转换为第三个实参的类型。   find_first_of 这个算法带有两对迭代器参数来标记两段元素范围,在第一段范围内查找与第二段范围中任意元素匹配的元素,然后返回一个 […]

●  顺序容器:将单一类型元素聚集起来成为容器,然后根据位置来存储和访问这些元素,这就是顺序容器。顺序容器的元素排列次序与元素值无关,而是由元素添加到容器里的次序决定。      1.标准库定义了三种顺序容器类型:vector、list 和 deque(是双端队列“double-ended queue”的简写,发音为“deck”)。它们的差别在于访 […]

● 如果想直接改变实参的值,可以使用引用形参,从C语言背景转到C++的程序猿习惯通过指针来实现对实参的访问。在C++中,使用引用形参则更安全和自然。如果使用引用形参的唯一目的是避免复制实参,则应将形参定义为const。应该将不需要修改的引用形参定义为const引用。   ● 从避免复制vector的角度出发,应考虑将形参声明为引用类型。事实上,C++程序猿倾向于通过传递指向容器中需要处理 […]