
程序语言类
文章平均质量分 78
shineHoo
这个作者很懒,什么都没留下…
展开
-
PHP PSR-4 Autoloader 自动加载
Autoloader关键词 “必须”("MUST")、“一定不可/一定不能”("MUST NOT")、“需要”("REQUIRED")、“将会”("SHALL")、“不会”("SHALL NOT")、“应该”("SHOULD")、“不该”("SHOULD NOT")、“推荐”("RECOMMENDED")、“可以”("MAY")和”可选“("OPTIONAL")的详细描述可参见 [转载 2016-02-02 16:48:31 · 1002 阅读 · 0 评论 -
C/C++——typedef用法小结
<br /><br />来源一:Using typedef to Curb Miscreant Code<br /> Typedef 声明有助于创建平台无关类型,甚至能隐藏复杂和难以理解的语法。不管怎样,使用 typedef 能为代码带来意想不到的好处,通过本文你可以学习用 typedef 避免缺欠,从而使代码更健壮。<br /> typedef 声明,简称 typedef,为现有类型创建一个新的名字。比如人们常常使用 typedef 来编写更美观和可读的代码。所谓美观,意指 typed转载 2010-08-10 14:32:00 · 925 阅读 · 0 评论 -
Java——接口和抽象类
<br />简单来说, 接口是公开的,里面不能有私有的方法或变量,是用于让别人使用的,而抽象类是可以有私有方法或私有变量的,另外,实现接口的一定要实现接口里定义的所有方法,而实现抽象类可以有选择地重写需要用到的方法。<br />一般的应用里,最顶级的是接口,然后是抽象类实现接口,最后才到具体类实现。<br />还有,接口可以实现多重继承,而一个类只能继承一个超类,但可以通过继承多个接口实现多重继承,接口还有标识(里面没有任何方法,如Remote接口)和数据共享(里面的变量全是常量)的作用. <br /><b转载 2010-06-10 21:19:00 · 605 阅读 · 0 评论 -
JAVA——覆盖和隐藏
<br /> <br />近期复习java时,发觉了自己很多没掌握的知识点,现在每天总结一点点,一点点的积累,一点点的进步。<br />今天的解决问题——java中覆盖和隐藏的问题(方法和变量)<br />参考网址:http://school.cnd8.com/java/jiaocheng/10836.htm<br /> http://heisetoufa.javaeye.com/blog/227345<br /> <br />1.先来总结java中方法的覆盖和隐藏<br />一个大的原则转载 2010-06-10 20:25:00 · 1039 阅读 · 0 评论 -
C/C++——全局变量、局部变量、静态全局变量和静态局部变量
<br />C++变量根据定义的位置的不同的生命周期,具有不同的作用域,作用域可分为6种:全局作用域,局部作用域,语句作用域,类作用域,命名空间作用域和文件作用域。<br /><br />从作用域看:<br /><br />全局变量具有全局作用域。全局变量只需在一个源文件中定义,就可以作用于所有的源文件。当然,其他不包含全局变量定义的源文件需要用extern 关键字再次声明这个全局变量。<br /><br />静态局部变量具有局部作用域,它只被初始化一次,自从第一次被初始化直到程序运行结束都一直存在,它和全转载 2010-06-09 10:38:00 · 929 阅读 · 0 评论 -
C/C++——虚拟继承
<br />从意义上来看,一个SleeperSofa没有沙发和床两种重量, 如此的继承不是真实的现实世界描述。进一步分析可得,床和沙发都是家具的一种,凡家具都有重量,所以通过分解来考察其关系,如图17—2所示。<br /><br /><br />图17-2 床和沙发的分解 //**********************<br /> //** ch17_2.cpp **<br /> //**********************<br /><br /> #include<转载 2010-06-07 20:08:00 · 936 阅读 · 0 评论 -
C/C++——memset,memcpy,strcpy 的区别
<br /><br />一.函数原型<br /> strcpy<br /> extern char *strcpy(char *dest,char *src);<br /> #include <string.h><br /> 功能:把src所指由NULL结束的字符串复制到dest所指的数组中<br /> 说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。<br /> 返回指向dest的指针<br /> memcpy<br /> exter转载 2010-06-03 14:04:00 · 843 阅读 · 0 评论 -
C++——inline函数
<br /><br />内联函数<br />函数的引入可以减少程序的目标代码,实现程序代码的共享。但是,函数调用也需要一些时间和空间方面的开销,因为调用函数实际上将程序执行流程转移到被调函数中,被调函数的程序代码执行完后,再返回到调用的地方。这种调用操作要求调用前保护现场并记忆执行的地址,返回后恢复现场,并按原来保存的地址继续执行。对于较长的函数这种开销可以忽略不计,但是对于一些函数体代码很短,但又被频繁地调用的函数,就不能忽视这种开销。引入内联函数正是为了解决这个问题,提高程序的运行效率。<br />转载 2010-06-02 11:06:00 · 1041 阅读 · 0 评论 -
C/C++——*string++、*++string、++*string的区别
<br />*string++、*++string、++*string的区别在于运算符的运算顺序不同。 <br /> 根据运算符的结合性,*string++等价于*(string++),即取出当前字符后将指针后移; <br /> *++string和++*string就很明显了,前者表示指针后移,并返回所指向的字符,后者表示将string所指向的字符累加1。 <br /> <br />转载自:http://blog.163.com/zhyang@yeah/blog/static/130143转载 2010-07-19 13:29:00 · 2416 阅读 · 0 评论 -
C/C++——常量指针和指针常量
<br /> 首先,我告诉大家一个小规则,就是像这样连着的两个词,前面的一个通常是修饰部分,中心词是后面一个词,怎么说呢。就像这里的常量指针和指针常量。<br /><br /> 常量指针,表述为“是常量的指针”,它首先应该是一个指针。<br /> 指针常量,表述为“是指针的常量”,它首先应该是一个常量。<br /><br /> 我再分开细细说明,常量指针,它是一个指针,什么样的指针呢?它是一个指向常量的指针,就是说我们定义了一个常量,比如 const int a=7; 那么我们就可以定义一个转载 2010-07-20 08:37:00 · 1992 阅读 · 1 评论 -
C++——STL所有算法介绍
STL算法部分主要由头文件,,组成。要使用 STL中的算法函数必须包含头文件,对于数值算法须包含,中则定义了一些模板类,用来声明函数对象。 STL中算法大致分为四类: 1、非可变序列算法:指不直接修改其所操作的容器内容的算法。 2、可变序列算法:指可以修改它们所操作的容器内容的算法。 3、排序算法:包括对序列进行排序和合并的算法、搜索算法以及有序序列上的集合操作。 4、数值算法:对容器内容进行数值计算。转载 2010-07-15 08:43:00 · 25536 阅读 · 1 评论 -
C++——STL排序算法介绍
对于程序员来说,数据结构是必修的一门课。从查找到排序,从链表到二叉树,几乎所有的算法和原理都需要理解,理解不了也要死记硬背下来。幸运的是这些理论都已经比较成熟,算法也基本固定下来,不需要你再去花费心思去考虑其算法原理,也不用再去验证其准确性。不过,等你开始应用计算机语言来工作的时候,你会发现,面对不同的需求你需要一次又一次去用代码重复实现这些已经成熟的算法,而且会一次又一次陷入一些由于自己疏忽而产生的bug中。这时,你想找一种工具,已经帮你实现这些功能,你想怎么用就怎么用,同时不影响性能。你需要的就是STL转载 2010-07-14 11:41:00 · 10611 阅读 · 2 评论 -
C/C++——深入理解sizeof
最近在论坛里总有人问关于sizeof的问题,并且本人对这个问题也一直没有得到很好的解决,索性今天对它来个较为详细的总结,同时结合strlen进行比较,如果能对大家有点点帮助,这是我最大的欣慰了。一、好首先看看sizeof和strlen在MSDN上的定义首先看一MSDN上如何对sizeof进行定义的:sizeof Operatorsizeof expressionThe sizeof keyword gives the amount of storage, in bytes, associat转载 2010-08-09 21:26:00 · 788 阅读 · 0 评论 -
C/C++——strcpy函数的实现
<br />题目: <br /> 已知strcpy函数的原型是: <br /> char * strcpy(char * strDest,const char * strSrc); <br /> 1.不调用库函数,实现strcpy函数。 <br /> 2.解释为什么要返回char *。 <br /><br /> 解说: <br /> 1.strcpy的实现代码 <br /><br /> char * strcpy(char * strDest,con转载 2010-08-16 17:17:00 · 10081 阅读 · 0 评论 -
PHP PSR-3 日志接口规范
日志接口规范本文制定了日志类库的通用接口规范。本规范的主要目的,是为了让日志类库以简单通用的方式,通过接收一个 Psr\Log\LoggerInterface 对象,来记录日志信息。框架以及CMS内容管理系统如有需要,可以对此接口进行扩展,但需遵循本规范,这才能保证在使用第三方的类库文件时,日志接口仍能正常对接。关键词 “必须”("MUST")、“一定不可/一定不能转载 2016-02-02 16:47:42 · 1139 阅读 · 0 评论 -
PHP PSR-2 代码风格规范
代码风格规范本篇规范是 PSR-1 基本代码规范的继承与扩展。本规范希望通过制定一系列规范化PHP代码的规则,以减少在浏览不同作者的代码时,因代码风格的不同而造成不便。当多名程序员在多个项目中合作时,就需要一个共同的编码规范,而本文中的风格规范源自于多个不同项目代码风格的共同特性,因此,本规范的价值在于我们都遵循这个编码风格,而不是在于它本身。关键词 “必须”("MUST"转载 2016-02-02 16:46:50 · 816 阅读 · 0 评论 -
PHP PSR-1 基本代码规范
基本代码规范本篇规范制定了代码基本元素的相关标准,以确保共享的PHP代码间具有较高程度的技术互通性。关键词 “必须”("MUST")、“一定不可/一定不能”("MUST NOT")、“需要”("REQUIRED")、“将会”("SHALL")、“不会”("SHALL NOT")、“应该”("SHOULD")、“不该”("SHOULD NOT")、“推荐”("RECOMM转载 2016-02-02 16:45:13 · 730 阅读 · 0 评论 -
Git - Tutorial
Git - TutorialLars VogelVersion 5.6Copyright © 2009, 2010, 2011, 2012, 2013, 2014 Lars Vogel08.02.2014Revision HistoryRevision 0.1 - 5转载 2014-10-20 09:14:54 · 2393 阅读 · 0 评论 -
K&R风格VSMS风格
<br /><br />(1)书写结构<br />k&r风格: 缩进一个水平制符,k&r提倡8格.左花括号紧接其后不另起一行(函数体的左括号除外).<br />if(...) {<br /> ...;<br /> ...;<br />} else if(...) {<br /> ...;<br /> ...;<br />} else {<br /> ...;<br /> ...;<br />}<br />while(...)转载 2011-04-12 13:00:00 · 10600 阅读 · 0 评论 -
.hpp文件和.h文件的区别
hpp,顾名思义等于.h加上.cpp,在boost、Xerces等开源库中频繁出现,偶在机缘巧合之下,学得一招半式,遂记录如下,以供参考学习。 hpp,其实质就是将.cpp的实现代码混入.h头文件当中,定义与实现都包含在同一文件,则该类的调用者只需要include该hpp文件即可,无需再将cpp加入到project中进行编译。而实现代码将直接编译到调用者的obj文件中,不再生成单独的obj,采用hpp将大幅度减少调用project中的cpp文件数与编译次数,也不用再发布烦人的lib与dll,转载 2011-04-12 12:43:00 · 22509 阅读 · 1 评论 -
C/C++——strcmp函数实现
<br /><br /><br />函数原型:int strcmp(const char *dest, const char *source) ;<br />返回值:返回整数值,如果dest > source,则返回值大于0,如果dest = source,则返回值等于0,如果dest < source ,则返回值小于0。字符大小是按照字符的字典序列进行排列的。<br />参数说明:都是以''/0''为结束符的字符串<br />实现;<br /> <br />int strcmp(const char *d转载 2010-09-07 13:56:00 · 5639 阅读 · 0 评论 -
C/C++——Code::Blocks使用手册
<br /> <br />原手册下载:http://www.codeblocks.org/docs/manual_en.pdf<br /> 译者:JGood(http://blog.youkuaiyun.com/Jgood )<br /> <br /> 译者言:工欲善其事,必先利其器。一个好的工具能事半功倍。写程序时,特别是写C++程序,大部分人脑子里想到的第一个工具就是VisualStudio。不可否认,VS很好很强大,用户体验非常好。但VisualStudio也是有缺点的:它非常庞大;只支持VC,不支持转载 2010-08-25 19:39:00 · 15785 阅读 · 0 评论 -
C/C++—— 内存区域划分
<br />一. 在c中分为这几个存储区<br />1.栈 - 由编译器自动分配释放<br />2.堆 - 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收<br />3.全局区(静态区),全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。- 程序结束释放<br />4.另外还有一个专门放常量的地方。- 程序结束释放<br />转载 2010-08-19 17:14:00 · 1631 阅读 · 1 评论 -
Linux程序设计——make命令与makefile文件
<br /><br />概述<br />——<br />什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML的标识的含义。特别在Unix下的软件编译,你就不能不自己写makefile了,会不会写makefile,从一个侧面说明了一个人是否具备完成大型工程的能力。<br /转载 2010-08-18 17:18:00 · 1859 阅读 · 0 评论 -
C++——std::string类的引用计数
<br /><br />1、概念<br /><br />Scott Meyers在《More Effective C++》中举了个例子,不知你是否还记得?在你还在上学的时候,你的父母要你不要看电视,而去复习功课,于是你把自己关在房间里,做出一副正在复习功课的 样子,其实你在干着别的诸如给班上的某位女生写情书之类的事,而一旦你的父母出来在你房间要检查你是否在复习时,你才真正捡起课本看书。这就是“拖延战 术”,直到你非要做的时候才去做。<br /><br />当然,这种事情在现实生活中时往往会出事,但其在编程世转载 2010-07-12 15:02:00 · 6186 阅读 · 0 评论 -
C++——Traits编程技法
——这篇是直接根据侯捷老师的书写的,几乎没有自己加工的部分,不过也是学习的总结吧Traits编程技法按照顺序,这次应该是迭代器Iterator的内容了,然而Iterator涉及到一个重要的技巧就是Traits编程技法;它还是值得单独一章来介绍一下的。一 获取Iterator的相应类型(associate type)在使用Iterator时,可能需要知道它的相应类型,也就是Iterator指向的变量的类型,在C/C++语言中,如果要获取一个变量的大小可以使用sizeof()操作符。然而如果想要获取一个指针指向转载 2010-07-09 16:03:00 · 2709 阅读 · 0 评论 -
C++——模板特化和偏特化
1.引言C++中的模板分为类模板和函数模板,虽然它引进到C++标准中的时间不是很长,但是却得到了广泛的应用,这一点在STL中有着充分的体现。目前,STL在C++社区中得到了广泛的关注、应用和研究。理解和掌握模板是学习、应用和研究以及扩充STL的基础。而STL模板实例中又充斥着大量的模板特化和偏特化。2.模板的定义(1) 类模板定义一个栈的类模板,它可以用来容纳不同的数据类型说明如下:template class stack {private: list* top;public: stack(); st转载 2010-07-09 15:46:00 · 12882 阅读 · 2 评论 -
C#——const与readonly的区别
文章1: 我们都知道,const和static readonly的确很像:通过类名而不是对象名进行访问,在程序中只读等等。在多数情况下可以混用。二者本质的区别在于,const的值是在编译期间确定的,因此只能在声明时通过常量表达式指定其值。而static readonly是在运行时计算出其值的,所以还可以通过静态构造函数来赋值。明白了这个本质区别,我们就不难看出下面的语句转载 2010-01-26 09:52:00 · 9711 阅读 · 0 评论 -
C#——访问SQL Server 2005公共类
下面是我总结出来的一个数据库访问公共类,基于ADO.NET,C#的,其中,以重载的方式实现使用存属过程的接口和不用存储过程的接口,如有不妥请大家指正,谢谢~ 作者:shinehoo using System;using System.Collections.Generic;using System.Text;using System.Data;using Sy原创 2010-01-28 16:48:00 · 2655 阅读 · 1 评论 -
C#——调用存储过程方法
下面是我自己总结的一个比较简单的c#调用SQL Server 2005存储过程的小例子,主要是介绍整个过程,有问题的话请大虾们指导,谢谢~ 作者:shinehoo 1)存储过程这样写的ALTER PROCEDURE dbo.procShowLog ( @StartTime datetime, @EndTime datetime, @原创 2010-01-28 16:35:00 · 1115 阅读 · 0 评论 -
C++——三种继承方式与三种访问权限的相互组合
对基类进行继承时,三种继承方式下,基类的三种访问权限在子类中会有如何的变化这个问题,本科时上C++这门课的时候曾仔细的分析并弄得挺清楚,后来时间久了、用的也不多,慢慢的又变得心里不太有谱了。这次接着准备面试的契机,又重新仔细分析了一番,留个案底,以免再犯糊涂。三种访问权限 public:可以被任意实体访问 protected:只允许子类及本类的成员函数访问 private转载 2010-01-24 13:33:00 · 6994 阅读 · 0 评论 -
C++——头文件的作用
头文件每个C++/C程序通常分为两个文件。一个文件用于保存程序的声明(declaration),称为头文件。另一个文件用于保存程序的实现(implementation),称为定义(definition)文件。C++/C程序的头文件以“.h”为后缀,C程序的定义文件以“.c”为后缀,C++程序的定义文件通常以“.cpp”为后缀(也有一些系统以“.cc”或“.cxx”为后缀)。 1.转载 2010-01-21 14:13:00 · 1396 阅读 · 0 评论 -
C++——接口与实现分离技术
在用C++写要导出类的库时,我们经常只想暴露接口,而隐藏类的实现细节。也就是说我们提供的头文件里只提供要暴露的公共成员函数的声明,类的其他所有信息都不会在这个头文件里面显示出来。这个时候就要用到接口与实现分离的技术。 下面用一个最简单的例子来说明。 类ClxExp是我们要导出的类,其中有一个私有成员变量是ClxTest类的对象,各个文件内容如下: lxTest.h文件转载 2010-01-21 17:00:00 · 1280 阅读 · 0 评论 -
C++ ——函数指针和指针函数
【函数指针】 在程序运行中,函数代码是程序的算法指令部分,它们和数组一样也占用存储空间,都有相应的地址。可以使用指针变量指向数组的首地址,也可以使用指针变量指向函数代码的首地址,指向函数代码首地址的指针变量称为函数指针。1.函数指针定义函数类型 (*指针变量名)(形参列表);“函数类型”说明函数的返回类型,由于“()”的优先级高于“*”,所以指针变量名外的括号必不可转载 2010-01-20 13:47:00 · 814 阅读 · 0 评论 -
C++——新式转型操作符
C++有四种转型操作符,以下小结一下:1,static_cast用得最多的,如果转换的是类型,则调用转型函数:比如int转float,float转int等基本数据类型的转型,如果是一个类,就调用类型转换函数,比如:#include using namespace std;class A{public: explicit A(int _a = 0) : a(_a) {}转载 2010-01-19 21:36:00 · 1575 阅读 · 0 评论 -
C++——操作符重载
什么是操作符重载? 一看到重载,很容易就让人联想到成员函数重载,函数重载可以使名称相同的函数具有不同的实际功能,只要赋给这些同名函数不同的参数就可以了,操作符重载也是基于这一机制的。系统为我们提供了许多操作符,比如“+”,“[ ]”等,这些操作符都有一些默认的功能,而操作符重载机制允许我们给这些操作符赋予不同的功能,并能够按照普通操作符的使用格式来使用自己定义功能的操作符(即重载转载 2010-01-19 14:06:00 · 1254 阅读 · 0 评论 -
C#——C#中C/C++程序员要注意的问题
1、C/C++程序员请注意,不能在case语句不为空时“向下执行”。2、值类型和引用类型之间的区别:C#的基本类型(int,char等)都是值类型,是在栈中创建的。而对象是引用类型,创建于堆中,需要使用关键字new。3、在C#中通过实例访问静态方法或成员变量是不合法的,会生成编译器错误。但是我们可以通过声明他们的类的名字来发访问静态成员。4、C#派生类中,没有私有或者保护继承。关于转载 2010-01-18 09:32:00 · 697 阅读 · 0 评论 -
C++——auto_ptr类
auto_ptr 类是一个模板类,它被定义在 memory 头文件中。auto_ptr 类可以用于管理由 new 分配的单个对象,但是无法管理动态分配的数组(我们通常不会使用数组,而是使用 vector 代替数组)。auto_ptr 在拷贝和赋值的时候有不寻常的行为,因此 auto_ptrs 不能被保存在 stl 的容器中。当 auto_ptr 离开了自己的作用域或者被销毁,由 auto_ptr转载 2010-01-15 20:56:00 · 2298 阅读 · 0 评论 -
C++—— #ifndef 和 #pragma once 区别
为了避免同一个文件被预编译多次 1 #ifndef方式2 #pragma once方式 在能够支持这两种方式的编译器上,二者并没有太大的区别,但是两者仍然还是有一些细微的区别。 方式一: #ifndef __SOMEFILE_H__ #define __SOMEFILE_H__ ... ... // 一些声明语句 #endif转载 2010-02-24 16:33:00 · 1022 阅读 · 0 评论 -
C++——虚函数与纯虚函数
一、概述虚函数为了重载和多态的需要,在基类中是由定义的,即便定义是空,所以子类中可以重写也可以不写基类中的函数!纯虚函数在基类中是没有定义的,必须在子类中加以实现,很像java中的接口函数!虚函数引入原因:为了方便使用多态特性,我们常常需要在基类中定义虚函数。class Cman{public: virtual void Eat(){……};转载 2010-03-01 12:57:00 · 855 阅读 · 0 评论