面向对象编程
youxin2012
这个作者很懒,什么都没留下…
展开
-
结构体 “值传递” 与“地址传递”
做一个简单的语法使用记录,方便以后查询。值传递 定义中 结构体成员 用“.” void ShowFunction(box Num){ cout.maker<<" " }地址传递 中,声明用 "*",实参传递用 “&”,定义中 结构体成员用 "->"struct bo原创 2012-10-07 00:25:16 · 4446 阅读 · 0 评论 -
《简明python教程 》总结(二)-- 字符串、对象、控制流
字符串字符串是 字符的序列 。字符串基本上就是一组单词。单引号(')、双引号(") 、三引号('''或""") 、转义符(\)● 单引号(') 与 双引号(") 作用相同● 三引号('''或""") 利用三引号,可以指示一个多行的字符串。你可以在三引号中自由的使用单引号和双引号。例如:'''This is a multi-line string. This is the原创 2013-10-02 14:06:38 · 2247 阅读 · 0 评论 -
《简明python教程》总结(三)-- 函数、模块
函数 函数通过def关键字定义,参数在函数定义的圆括号对内指定,用逗号分割 示例:#!/usr/bin/python# Filename: func_param.pydef printMax(a, b): if a > b: print a, 'is maximum' else: print原创 2013-10-03 10:45:35 · 1690 阅读 · 0 评论 -
《简明python教程》总结(六)-- os, sys模块及其他内容
sys模块sys模块包含系统对应的功能。我们已经学习了sys.argv列表,它包含命令行参数。命令行参数 #!/usr/bin/python# Filename: cat.pyimport sysdef readfile(filename): '''Print a file to the standard output.''' f = f原创 2013-10-04 12:19:39 · 3966 阅读 · 0 评论 -
简明 python例程 (爬取 某地一年天气最高温度)
爬取地址 http://www.wunderground.com/history/ariport/KBUF/2009/1/1/DailyHistory.html?req_city=NA&req_state=NA&req_statename=NA#-*-coding:utf-8-*-#!/usr/bin/pythonimport urllib2from BeautifulSoup原创 2013-06-08 21:55:58 · 3384 阅读 · 0 评论 -
《简明python教程》总结(五)-- 面向对象编程,输入/输出,异常
在python中一切皆为对象。例: int为一个类,int i 中的 i为 int 类的对象/一个实例类的属性: 方法和域。 域分两种类型:属于每个对象和属于类本身。分别称为 实例变量和 类变量。 类使用class关键字创建。类的域和方法被列在一个缩进块中。 self类的方法与普通的函数只有一个特别的区别——它们必须有一个额外的第一个参数名称,但是在调用这个方法的时原创 2013-10-03 23:43:16 · 2915 阅读 · 0 评论 -
《简明python教程 》总结(一)--简介(特点、安装、使用)
读完了《a bit of python》,打算通过5篇博文记录学习中的收获 简介 1.特性简介Python是一种解释型、面向对象、动态数据类型的高级程序设计语言。它逐渐被广泛应用于处理系统管理任务和Web编程。由于Python语言的简洁、易读以及可扩展性,在国外用Python做科学计算的研究机构日益增多。用户可以在任何计算机上免费安装Python及其绝大多数扩展库。 简原创 2013-10-02 11:11:15 · 2127 阅读 · 0 评论 -
《简明python教程》总结(四)-- 数据结构
数据结构基本上就是——它们是可以处理一些数据的结构 。或者说,它们是用来存储一组相关数据的。在Python中有三种内建的数据结构——列表、元组和字典。 列表(list) 列表中的项目应该包括在方括号中,这样Python就知道是在指明一个列表。列表可以进行添加、删除或是搜索列表中的项目。说列表是可变的数据类型,即这种类型是可以被改变的。常用于数据需要改变(删/增)的类原创 2013-10-03 17:48:54 · 2024 阅读 · 0 评论 -
链表操作--指针传递 测试与学习
链表操作,测试下 通过 指向结点的指针以及 指向结点指针的指针 完成 链表操作。//链表的实现#include #include #define ElemType int#define LIST_INIT_SIZE 20#define OK 1#define ERROR 0typedef struct Node{ int data; struct Node *next;原创 2013-11-22 18:05:40 · 2034 阅读 · 0 评论 -
Python的字典操作
Python的字典操作Python提供了多种应用于字典的操作。因为字典为容器,内建len函数可以将字典当作单一参数使用听切返回字典对象中项目(键/值对)的数目。字典会员在Python2.2以及后面版本,D中的k运算符检测是否对象k是字典D中的键。如果是返回True如果不是返回False。相似的,索引一个字典字典D中的值与相关的键k被索引表示为:D[k]。索引字典转载 2013-09-30 15:46:55 · 10404 阅读 · 0 评论 -
C++容器中 size(), capacity, reserve() ,resize() 函数讲解
size()指 目前存在的元素数。 元素个数capacity()指 容器能存储 数据的个数 容器 容量reserve()指定 容器 能存储数据的个数resize() 重新 指定 有效元素的个数 ,区别与reserve()指定 容量的大小当创建空容器时, 容量(capacity)为 0;当用完时,增加原容量的 1/2 (各编译器 可能存在差异 vs原创 2013-07-01 14:05:22 · 21452 阅读 · 0 评论 -
java中单例模式singleton
单例模式:在上下文中只有一个对象的实例。 应用场景:线程池,缓存等一个系统只需要一个的场景。三种常见单例模式: 1. 延迟单例模式public class Singleton { private static Singleton uniqueInstance; private Singleton() {} public static Singleton getInstance原创 2015-06-14 14:16:17 · 1140 阅读 · 0 评论 -
KMP算法原理与实现(精简)
思想:使源字符串中的下标不回溯,利用模式字符串自身的相关性,减少模式字符串中下标回溯的距离。从而减少比较的次数。关键问题: 分析模式字符串,得出 部分匹配值数组。原理参考此处。具体实现:#include #include #include void get_next(int next[], char source[], int n);//获取部分匹配字符数组int In原创 2013-12-02 23:10:42 · 10660 阅读 · 6 评论 -
C/C++经典书籍推荐
以下书籍为大牛师兄为 师弟 做的一些推荐,现分享之,欢迎大家对好书进行补充~C++:C++ Primer (学习C++的都懂的)高质量C/C++ (国内C/C++经典书籍)Effective C++ (提高代码质量的原创 2013-03-06 11:23:42 · 9558 阅读 · 3 评论 -
static_cast | dynamic_cast | const_cast | reinterpret_cast
C++四种强制类型转换:static_cast 静态类型转换 一般是普通数据类型(如int dynamic_cast 动态类型转换 一般用在父类和子类指针或应用的互相转化; const_cast 去掉原创 2014-06-12 17:15:23 · 1332 阅读 · 0 评论 -
访问控制 protected, public, private 对比
OOP 3大特性:数据抽象,继承,动态绑定3中访问标号protected, public, private 对比用类进行数据抽象;用继承类继承基类的成员,实现继承;通过将基类相应函数声明为virtual,是编译器在运行时决定调用基类函数or派生类函数 完成动态绑定,即表现多态性。多态性:利用继承和动态绑定,通过基类指针和引用来表现。动态绑定两个条原创 2014-06-01 15:23:48 · 1996 阅读 · 0 评论 -
面向对象的三个基本特征
好文章,转载下,方便自己加深理解,日后继续补充。转自:http://blog.csdn.net/ggxxkkll/article/details/8792471在网上看见很多版本的面向对象的三个基本特征,发现很多博客有不少错误,竟然把重载也归到多态的范畴里面去了。在此自己做了下整理面向对象的三个基本特征是:封装、继承、多态。 1 封装转载 2013-04-13 11:54:22 · 1151 阅读 · 0 评论 -
protected,public,private 的区别
简单介绍一下 protect,public,private 的区别,更详细的随后不上。 欢迎纠错~ 以C++为例: public: 数据成员和函数成员可在成员函数,友元,继承类中直接使用。亦可以作为接口,供类的用户使用(即 A a, a.change())。 private: 数据成员和函数成员,只能在 类成员和友元 中访问。不能被继承类访问(无论何种继原创 2013-03-27 14:02:13 · 1667 阅读 · 0 评论 -
大端法与小端法简介及应用
数据在 内存 中的 存储顺序 都是 从 低地址 向 高地址 存储的 (首地址 指 编号较少的 地址编号)例 存储 4个char (a1, a2, a3, a4),则 第一个到 第四个 所占的 存储空间地址 依次为 0x101, 0x102, 0x103, 0x104 大端法 ,小端法 指的是 多字节的数据(int,float)在内存中 所占空间的 地原创 2013-09-28 17:16:22 · 3481 阅读 · 0 评论 -
指针使用小结 -- 指针传递与指针所指空间赋值
结合示例 总结一下 指针的各个概念:如 int a = 3; int* point =&a;设内存分布如下address 变量名值0x300000a3.. .. 0x500000point0x300000 指针变量(用于存储原创 2013-11-05 12:37:58 · 6093 阅读 · 0 评论 -
VS2008常见编译错误(总结篇)
错误1:fatal error C1853: “Debug\mydll.pch”预编译头文件来自编译器的早期版本项目中混合了 .cpp 和 .c 文件时,编译器会对它们采取不同的编译方式(主要是因为对函数声明的处理方式不同),因而不能共用一个预编译头文件。在 VC++ 中,默认的预编译头文件是针对 C++ 的 (stdafx.h 和 stdafx.cpp),当然也可以创建针对 C 的预原创 2013-09-09 08:31:00 · 3631 阅读 · 0 评论 -
c语言中return与exit的区别
1. exit 用于在程序运行的过程中随时结束程序,exit 的参数是返回给OS的。main函数结束时也会隐式地调用exit函数。exit函数运行时首先会执行由atexit()函数登记的函数,然后会做一些自身的清理工作,同时刷新所有输出流、关闭所有打开的流并且关闭通过标准I/O函数tmpfile()创建的临时文件。exit是结束一个进程,它将删除进程使用的内存空间,同时把错误信息返回父进程,而re原创 2013-03-06 11:08:39 · 7991 阅读 · 1 评论 -
良好的编程习惯 (七)代码的编译、审查---常用工具软件
7.1: 同产品软件(项目组)内,最好使用相同的编辑器,并使用相同的设置选项。 说明:同一项目组最好采用相同的智能语言编辑器,如Muiti Editor ,Visual Editor等,并设计、使用一套缩进宏及注释宏等,将缩进等问题交由编辑器处理。 7.2:某些语句经编译后产生告警,但如果你认为它是正确的,那么应通过某种手段去掉告 警信息。 说明:在Borland C/C+原创 2013-01-21 22:35:40 · 1451 阅读 · 0 评论 -
良好的编程习惯 (六)代码的可测试--断言的使用
6-1:在进行集成测试/ 系统联调之前,要构造好测试环境、测试项目及测试用例,同时仔细分析并优化测试用例,以提高测试效率。 说明:好的测试用例应尽可能模拟出程序所遇到的边界值、各种复杂环境及一些极端情况等。 6-2 :使用断言来发现软件问题,提高代码可测性。 说明:断言是对某种假设条件进行检查(可理解为若条件成立则无动作,否则应报告),它可以快速发现并定位软件问题,同时原创 2013-01-21 22:29:49 · 3133 阅读 · 1 评论 -
良好的编程习惯 (三)标示符命名
¹3-1 :标识符的命名要清晰、明了,有明确含义,同时使用完整的单词或大家基本可以理解的缩写,避免使人产生误解。 说明:较短的单词可通过去掉“元音”形成缩写;较长的单词可取单词的头几个字母形成缩写;一些单词有大家公认的缩写。 示例:如下单词的缩写能够被大家基本认可。 temp 可缩写为 tmp ; flag 可缩写为 flg ; statistic 可缩写原创 2013-01-20 23:17:28 · 1102 阅读 · 0 评论 -
良好的编程习惯 (四)代码可读性
¹4-1 :注意运算符的优先级,并用括号明确表达式的操作顺序,避免使用默认优先级。 说明:防止阅读程序时产生误解,防止因默认的优先级与设计思想不符而导致程序出错。 示例:下列语句中的表达式 word = (high if ((a | b) && (a & c)) (2) if ((a | b) 如果书写为 high a | b && a & c a |原创 2013-01-20 23:20:52 · 1298 阅读 · 0 评论 -
微软面试题 经典测试(第一组)
相传为 微软的面试题。供大家参考学习1.烧一根不均匀的绳,从头烧到尾总共需要1个小时。现在有若干条材质相同的绳子,问如何用烧绳的方法来计时一个小时十五分钟呢? 2.你有一桶果冻,其中有黄色、绿色、红色三种,闭上眼睛抓取同种颜色的两个。抓取多少个就可以确定你肯定有两个同一颜色的果冻? 3.如果你有无穷多的水,一个3公升的提捅,一个5公升的提捅,两只提捅形状上下都不原创 2013-01-28 13:32:25 · 3160 阅读 · 1 评论 -
[专栏]【算法入门】通过简单的判断,减少算法的冗余
例:求斜边小于等于n的所有的直角三角形 边长的组合。方法一:(最笨最直接的做法)3个边长分别从 1到n 进行判断。方法二:确定一斜边和一直角边。直角边必定小于斜边,从而减少一部分冗余。方法三:确定一斜边和一直角边,同时确定另一直角边的范围 必定小于等于 sqrt(斜边方-直角边平方)的整数部分。 (该边从小到大取值,超过一定只就不再可能满足 a2+b2=c2 b,c固定)原创 2013-01-11 21:45:20 · 244 阅读 · 0 评论 -
MinGW的安装 (可在windows 下 使用Linux 环境进行gcc编程)
如何安装MinGW此文摘自:http://zhan.renren.com/lichedugid=3602888498035165402&from=PubNewFeed&ref=hotnewsfeed&sfet=3731&fin=28&fid=20892333746&ff_id=&platform=0&expose_time=1356701624中间存在不清楚的地方,我自己又做了些补充,原创 2012-12-28 23:02:07 · 12335 阅读 · 2 评论 -
快速排序 算法 详解 及 深度优化
下面简介经典算法 快速排序算法 实现及优化。 (欢迎大家指点,继续提出优化的方法,共同提高)基本思想:(以按从小到大排序为例说明)通过多次的排序,每次的排序均将要排序的数组分为两部分,前一部分均比中间值小,后一部分均比中间值大,这样重复递归下去将每一部分按相同的思路进行分割,最终使整个数组达到从小到大有序排列。较冒泡排序的优点:同为通过不断的比较和移位来得到有序数组,但快排增大了比较和移原创 2013-04-03 22:54:12 · 6322 阅读 · 5 评论 -
多线程 线程队列的实现
参考他人的方法,自己做了简单修改,实现一个通用的线程队列。#include #include #include #define POOL_SIZE 10#define QUEUE_LEN 20pthread_mutex_t queue_lock; //队列锁pthread_cond_t queue_cond; //条件变量int head = 0, tail = 0原创 2013-04-14 09:31:01 · 5674 阅读 · 0 评论 -
动态链接库dll的 静态加载 与 动态加载
dll 两种链接方式 : 动态链接和静态链接(链接亦称加载)动态链接是指在生成可执行文件时不将所有程序用到的函数链接到一个文件,因为有许多函数在操作系统带的dll文件中,当程序运行时直接从操作系统中找。 而静态链接就是把所有用到的函数全部链接到exe文件中。动态链接是只建立一个引用的接口,而真正的代码和数据存放在另外的可执行模块中,在运行时再装入; 而静态链接是原创 2013-09-10 21:29:55 · 14370 阅读 · 2 评论 -
覆盖,重写,重载,隐藏,多态的区别
简单解析一下OOP编程中常常让人困惑的几个名词。覆盖,重写,重载,隐藏,多态 首先,覆盖也称重写,英文override特点:1. 指不同作用域中(派生类和基类)同名函数的定义2. 函数名、参数均完全相同3. 基类对应方法前有 virtual,即被声明为虚函数 作用:基类指针和引用在调用对应方法时,根据所指对象类型实现动态绑定。原创 2013-09-03 11:33:13 · 2741 阅读 · 0 评论 -
良好的编程习惯 (二) 注释
资料出自 中国通信业 国际知名 大公司。¹2-1 :一般情况下,源程序有效注释量必须在20%以上。 说明:注释的原则是有助于对程序的阅读理解,在该加的地方都加了,注释不宜太多也不能太少,注释语言必须准确、易懂、简洁。 ¹2-2 :说明性文件(如头文件.h文件、.inc文件、.def文件、编译说明文件.cfg等)头部应进行注释,注释必须列出:版权说明、版本原创 2013-01-20 18:27:58 · 2125 阅读 · 0 评论 -
良好的编程习惯 (五)变量与结构
¹5-1 :去掉没必要的公共变量。 说明:公共变量是增大模块间耦合的原因之一,故应减少没必要的公共变量以降低模块间的耦合度。 ¹5-2 :仔细定义并明确公共变量的含义、作用、取值范围及公共变量间的关系。 说明:在对变量声明的同时,应对其含义、作用及取值范围进行注释说明,同时若有必要还应说明与其它变量的关系。 ¹5-3 :明确公共变量与操作此公共变量的函数或过程的关系原创 2013-01-20 23:33:12 · 1603 阅读 · 0 评论 -
良好的编程习惯 (一) 排版
近日看到 一些 国内 某知名大公司的 内部培训资料,感觉很好,现分享与大家。1-1 :程序块要采用缩进风格编写,缩进的空格数为4个。 说明:对于由开发工具自动生成的代码可以有不一致。 1-2 :相对独立的程序块之间、变量说明之后必须加空行。 示例:如下例子不符合规范。 if (!valid_ni(ni)) { ... // progra原创 2013-01-20 18:18:06 · 1157 阅读 · 0 评论 -
C++ string中find() ,rfind() 等函数 用法总结及示例
string中 find()的应用 (rfind() 类似,只是从反向查找)原型如下:(1)size_t find (const string& str, size_t pos = 0) const; //查找对象--string类对象(2)size_t find (const char* s, size_t pos = 0) const; //查找对象--字符串(3)si原创 2013-06-24 15:02:09 · 131637 阅读 · 3 评论 -
C/C++文件输入输出操作——FILE*、fstream、windowsAPI
C/C++文件输入输出操作——FILE*、fstream、windowsAPI 转自此处 基于C的文件操作 在ANSI C中,对文件的操作分为两种方式,即 流式文件操作和I/O文件操作,下面就分别介绍之。 流式文件操作是通过缓冲区来进行;而 I/O文件操作,它是通过直接存/取文件来完成对文件的处理。流式文件操作是围绕一个FILE指 针来进行,而直接I/O文件操作是围转载 2013-05-12 16:28:04 · 2283 阅读 · 0 评论 -
友元简介:友元函数,友元类和友元成员函数
友元简介:C++为了保证类的封装性,使私有部分和保护部分对外不可见,公有部分提供唯一的访问途径。(基类的保护部分在public,protected方式的派生类中,也对外提供访问途径,在派生类中访问权限同公有部分)。但这样的限制太严格,以至于不适合特定的编程,因此,C++提供了另一种形式的访问权限,即友元。使得可以访问友元所在类的私有部分和保护部分。友元与位于类的public,private原创 2013-05-02 10:05:38 · 8336 阅读 · 0 评论 -
数据库操作分层结构总结
在持久化数据的读写操作中常常要涉及到 数据库与缓存 的操作,同时由于业务需要常常要对多表进行事务操作。基于结构层次化设计的思想我们常常需要对这一系列操作进行分层设计。各层的主要职责,以及发生异常如何处理,是向上继续抛出,还是在该层对异常做转换等处理,以及事务中发生异常时缓存的处理等需要一些思考。以个人的经验为例: 常常将持久化操作分为3层:dao层,manager层,service层 其中 d原创 2015-12-31 00:05:27 · 3227 阅读 · 1 评论