继承和动态绑定与数据抽象一起成为面向对象编程的基础. 模板使我们能够编写独立于具体类型的泛型类和泛型函数. 第15章 面向对象编程 面向对象编程基于三个基本概念:数据抽象.继承和动态绑定.在C++中,用类进行数据抽象,用派生类从一个类继承另一个类:派生类继承基类的成员.动态绑定使编译器能够在运行时决定是使用基类中定义的函数还是派生类中定义的函数. 继承和动态绑定在两个方面简化了我们的程序:能够容易地定义与其他类相似但又不相同的新类,能够更容易地编写忽略这些相似类型之间区别的程序. 面向对象编程的…
C++Primer第5版学习笔记(四) 第六章的重难点内容         你可以点击这里回顾第四/五章的内容       第六章是和函数有关的知识,函数就是命名了的代码块,可以处理不同的情况,本章内容包括:         1.函数的概念基础,包括函数的定义声明以及函数如何生成值和返回结果.       2.函数重载,重载可以使函数接受不同种类或者数量不同的参数.       3.函数指针,指向函数的一类特殊指针.         下面是这一章的知识点:              知识点1:P…
阅读笔记 初始化 变量定义指定了变量的类型和标识符,也可以为对象提供初始值.定义时指定了初始值的对象被称为是 已初始化的.C++ 支持两种初始化变量的形式:复制初始化和 直接初始化.复制初始化语法用等号(=),直接初始化则是把初始化式放在括号中:int ival(1024); // direct-initializationint ival = 1024; // copy-initialization使用 = 来初始化变量使得许多 C++ 编程新手感到迷惑,他们很容易把初始化当成是赋值的一种形式…
之前阅读时没有及时总结,现在慢慢补上. 第1章 快速入门 main 函数在很多方面都比较特别,其中最重要的是每个C++程序必须含有 main 函数,且 main 函数是(唯一)被操作系统显示调用的函数. main 函数的返回值必须是 int 型. endl 是一个特殊值,称为操纵符(manipulator),将它写入输出流时,具有输出换行的效果,并刷新与设备相关联的缓冲区(buffer).通过刷新缓冲区,用户可立即看到写入到流中的输出. C++中通过定义类来定义自己的数据结构. 标准库的头文件用…
类定义了数据成员和函数成员:数据成员用于存储与该类类型的对象相关联的状态:而函数成员则负责执行赋予数据意义的操作. 第12章 类 一个类可以包含若干公有的.私有的和受保护的部分:在public部分定义的成员可被使用该类型的所有代码访问:在private部分定义的成员可被其他类成员访问. 所有成员必须在类的内部声明. const成员函数不能改变其所操作的对象的数据成员.const必须同时出现在声明和定义中,若只出现其中一处,就会出现一个编译时错误. 类背后蕴涵的基本思想是数据抽象和封装. 数据抽象…
泛型算法中,所谓"泛型(generic)"指的是两个方面:这些算法可作用于各种不同的容器类型,而这些容器又可以容纳多种不同类型的元素. 第九章 顺序容器 顺序容器的元素排列次序与元素值无关,而是由元素添加到容器里的次序决定. IO库类型不支持复制或赋值.因此,不能创建存放IO类型对象的容器. 定义容器的容器时,注意使用空格: vector< vector<string> > lines;    OK vector<vector<string>&…
Runtime type information (RTTI) allow you to discover and use type information while a program is running This take two forms: 1. "traditional" RTTI, which assumes that you have all the types available at compile time, 2. the reflection mechanis…
C++Primer第5版学习笔记(三) 第四/五章的重难点内容           你可以点击这里回顾第三章内容       因为第五章的内容比较少,因此和第四章的笔记内容合并.       第四章是和表达式有关的知识,表达式是C++的基础设施,本章由三部分组成:         1.表达式概念基础,包括表达式的基本概念,左值和右值的概念,优先级结合律,求值顺序.       2.各种运算符,主要包括算数\关系\逻辑\赋值\递增递减\成员访问\条件\位运算\sizeof\逗号运算符 这10种运算…
C++Primer第5版学习笔记(一) 第一.二章的重难点内容        这个笔记本主要记录了我在学习C++Primer(第5版,中文版)的过程中遇到的重难点及其分析.因为第一.二章都比较简单,因此这里合并这两章我遇到的问题.        第一章 开始        这一章在第一部分之前,是一个helloworld式的章节,包含基本的函数,io流以及类的介绍.依靠这一章的内容可以创建第一个完整可被编译的cpp文件.        知识点1:P19,1.5,文件重定向(英文版22页) 可以在…
时至今日,已然看到第十章,似乎越是焦躁什么时候能翻完这本圣经的时候也让自己变得更加浮躁,想想后面还有一半的行程没走,我觉得这样“有口无心”的学习方式是不奏效的,或者是收效甚微的.如果有幸能有大牛路过,请指教如何能以效率较高的方式学习Hadoop. 我已经记不清圣经<hadoop 实战2>在我手中停留了多久,但是每一页每一章的翻过去,还是在脑壳里留下了点什么. 一段时间以来,我还是通过这本书加深以及纠正了我对于MapReduce.HDFS乃至Hadoop的新的认识.本篇主要介绍MapReduce…
C++Primer第5版学习笔记(二) 第三章的重难点内容         这篇笔记记录了我在学习C++常用基本语法的学习过程,基本只记录一些重难点,对概念的描述不是一开始就详尽和准确的,而是层层深入的.第三章主要讲这么五个概念:       1.using声明,我知道挺多同学写代码练手都要在源文件前几句直接加using namespace std;然而using语句并不是什么情况都这么使用的,稍后我们将会看到详细的用法.  2.标准库类型string,和C味的字符数组有区别的string,到底…
接着Mina源码阅读笔记(四)-Mina的连接IoConnector1,,我们继续: AbstractIoAcceptor: 001 package org.apache.mina.core.rewrite.service; 002   003 import java.io.IOException; 004 import java.net.SocketAddress; 005 import java.util.ArrayList; 006 import java.util.Collections…
软件:DrJava 参考书:算法(第四版) 章节:2.4优先队列(以下截图是算法配套视频所讲内容截图) 1:API 与初级实现 2:堆得定义 3:堆排序 4:事件驱动的仿真 优先队列最重要的操作就是删除最大元素和插入元素,我们会把精力集中在他们身上.删除最大元素的方法名为delMax(),插入元素的方法名为insert().…
软件:DrJava 参考书:算法(第四版) 章节:2.3快速排序(以下截图是算法配套视频所讲内容截图) 1:快速排序 2:…
一.面向对象编程的含义 *   是一种模块化编程方法,使代码的重用性大大的增加. *   oop技术使得项目的设计阶段需要的精力大大的增加,但是一旦对某种类型的数据表达方式达成一致,这种表达方式就可以沿用下去,直到这款应用的生命周期结束. 1.对象就是OOP应用程序的一个组成部分,这个组成部件封装了部分应用程序,这部分程序可以是一个过程.一些数据或一些更抽象的实体.对象的类型在OOP中有个特殊的名称叫做类.可以使用类来定义一个对象. PS:术语“类”和“对象”常常被混淆,但简单的来讲就是,类是模…
第11章  面向对象编程 面向过程:根据操作数据的函数或语句块来设计程序. 面向对象(OOP, object-oriented programming):把数据和功能结合起来,用对象包裹组织程序. 类是用来描述具有相同属性和方法的对象的集合.它定义了该集合中每个对象所共有的属性和方法. 类和对象是面向对象编程的两个主要方面.类创建一个新类型,而对象是类的 实例. 类似于你有一个 int 类型的变量,存储整数的变量是 int 类的实例(对象). 注意,即便是整数也被作为对象(属于int类).这和C…
前几章包括开启python之旅.列表和元组.字符串.字典.条件和循环等语句.函数等基本操作.主要对后面几章比较深入的内容记录笔记. 第8章 面向对象编程 8.3深入类 #!/usr/local/bin/python3 # -*- coding:utf-8 -*- class MyClass(object): i=123 def f(self): return 'hello world' useClass=MyClass() print('类属性:',useClass.i) print('类方法:…
一.寄存器对象: 函数中频繁被使用的变量可以加上register就可声明为寄存器对象.对于寄存器对象,假如能够放到寄存器中就会放到寄存器中,放不到的话就放到内存中.比如 register int  a,一般用于循环控制变量挺好的. 二.静态变量. 这里容易犯一个错误,记住,静态变量只初始化一次,没有初始化的会自动初始化为0 #include <iostream>    int traceGcd( int v1, int v2 )  {    static int depth = 1;  cou…
1.压缩文件案的用途与技术     a.用途,简单来说,就是节约磁盘空间.如果从传输角度讲,占用宽带也会小很多(Apache就有自动压缩的功能,节省宽带资源,提升网站的输出能力)     b.压缩技术,总体来讲有两个方案,第一个:填充法,比如数字1,在机器码中是 00000001 前面几位都是空的,所谓填充法就是用一些特别的方法把这些空的都利用起来,从而达到,降低占用的磁盘空间.             第二种是,统计重复记录,举例来讲,我的数据中有100个1(11111.....),压缩技术就…
本篇博客主要记录一个完整的TCP客户/服务器实例的编写,以及从这个实例中引发的对僵死进程的处理等问题. 1. TCP客户/服务器功能需求 本实例完成以下功能: (1) 客户从标准输入读入一行文本,并写给服务器 (2) 服务器从网络输入中读入这行文本,并回射给客户 (3) 客户从网路输入读入这行回射文本,并显示在标准输入 需要用到的函数: (1) 套接字编程基本函数(socket,bind,listen,accept,connect,close等),完成套接字编程 (2) 标准I/O库函数fput…
<C++ Primer>Learning Note 程序实例下载地址:http://www.informit.com/title/0321714113 第一章            开始 本章介绍C++的大部分基础内容:类型.变量.表达式.语句及函数.在这个过程中,我们会简要介绍如何编译及运行程序,以期指导读者具备编写.编译及运行简单程序的能力. 1.关于main(): 每个C++程序包含一个或多个函数,其中一个必须命名为main,操作系统通过调用main来运行C++程序.main函数的返回类…
还有一个<Sqlserver2008技术内幕>的笔记,也很好!~ http://www.cnblogs.com/liupeng61624/p/4354983.html 温习一遍简单的sql语法,把自己掌握还不够的地方,做了些笔记.... 1 去重复关键词,distinct select distinct sname from student; 2 限制结果top的用法 select top 5 id from student 获取前五条记录 可以利用top来写sql分页语句 3 排序order…
JavaScript 基础   Page 13 (1)<script> 的属性:async,charset,defer='defer',language已废,src,type   (2)null 是一个空值,是一个特殊对象: undefined 表示空值,它不是对象 是未定义的意思:undefined==null 返回true;    (3)全局变量: 全局属性:undefined.Infinty.Nan 全局函数:isNaN()[Not a Number不是数字返回true].parseIn…
温习一遍简单的sql语法,把自己掌握还不够的地方,做了些笔记.... 1 去重复关键词,distinct select distinct sname from student; 2 限制结果top的用法 select top 5 id from student 获取前五条记录 可以利用top来写sql分页语句 3 排序order by select * from student order by id,name desc; 默认是升序 asc,若是降序要在列名后标明desc order by语句…
上一篇写的是IoAcceptor是服务器端的接收代码,今天要写的是IoConnector,是客户端的连接器.在昨天,我们还留下一些问题没有解决,这些问题今天同样会产生,但是都要等到讲到session的时候才能逐步揭开.先回顾一下问题: l  我们已经在AbstractPollingIoAcceptor中看到了,mina是将连接(命令)和业务(读写)分不同线程处理的,但是我们还没有看到mina是如何实现对这些线程的管理的. l  在昨天的最后,我们看到在NioSocketAcceptor中的具体N…
1.中断的作用:中断信号提供了一种方式,使处理器转而去运行正常控制流之外的代码.当一个中断信号到达时,CPU必须停止它当前所做的事,并切换到一个新的活动.为了做到这一点,就要在内核态堆栈保存程序计数器的当前值(即eip和cs寄存器的内容),并把与中断类型相关的一个地址放进程序计数器. 2.异常又分为三种类型: (1).故障(Fault):保存在eip中的值是引起故障的指令地址,因此,当异常处理程序终止时,会重新执行该指令.(例如,缺页异常处理程序). (2).陷阱(Trap):保存在eip中的值…
第四章.返回结果的HTTP状态码前言:状态码的职责是告诉用户服务器端描述返回的请求,以便用户判断服务器处理是否正常. 状态码由三位数字和原因短语组成,其中三位数字的首位指定了响应类别:---1xx 接收的请求正在处理 (信息性状态码)---2xx 请求正常处理完毕 (成功性状态码)---3xx 需要进行附加操作以完成请求 (重定向状态码)---4xx 服务器无法处理请求 (客户端出错状态码)---5xx 服务器处理请求出错 (服务器出错状态码) =========================…
第17章  用于大型程序的工具 异常处理 不存在数组或函数类型的异常.相反,如果抛出一个数组,被抛出的对象转换为指向数组首元素的指针,类似地,如果抛出一个函数,函数被转换为指向该函数的指针. 不要抛出指针 析构函数不要抛出异常 除下面几种可能的区别之外,异常的类型与 catch 说明符的类型必须完全匹配: •     允许从非 const 到 const 的转换.也就是说,非 const 对象的 throw 可以与指定接受 const 引用的 catch 匹配. •     允许从派生类型型到基…
第12章 类       每个类可以没有成员,也可以定义多个成员,成员可以是数据.函数或类型别名. 成员函数必须在类内部声明,可以在类内部定义,也可以在类外部定义.如果在类内部定义,就默认是内联函数. 内联函数有三种:(1)直接在类内部定义. (2)在类内部声明,加上inline关键字,在类外部定义. (3)在类内部声明,在类外部定义,同时加上inline关键字.注意:此种情况下,内联函数的定义通常应该放在类定义的同一头文件中,而不是在源文件中.这是为了保证内联函数的定义在调用该函数的每个源文件…
第1章  快速入门 每个C++程序都包含一个或多个函数,而且必须有一个命名为main. main函数是唯一被操作系统显式调用的函数,main函数的返回值必须是int或者void(无返回值) 函数体是函数定义的最后部分,是以花括号开始并以花括号结束的语句块: 注释 C++ 中有单行注释和成对注释两种类型的注释.单行注释以双斜线(//)开头,行中处于双斜线右边的内容是注释,被编译器忽略. 另一种定界符,注释对(/* */),是从 C 语言继承过来的.这种注释以“/*”开头,以“*/”结尾.编译器把落…