- 军军小站|张军博客
搜索到与相关的文章
编程技术

C语言面向对象编程(三):虚函数与多态

在《C++编程思想》一书中对虚函数的实现机制有详细的描述,一般的编译器通过虚函数表,在编译时插入一段隐藏的代码,保存类型信息和虚函数地址,而在调用时,这段隐藏的代码可以找到和实际对象一致的虚函数实现。我们在这里提供一个C中的实现,模仿VTABLE这种机制,但一切都需要我们自己在代码中装配。之前在网上看到一篇描述C语言实现虚函数和多态的文章,谈到在基类中保存派生类的指针、在派生类中保存基类的指针来实现相互调用,保障基类、派生类在使用虚函数时的行为和C++类似

系统 2019-08-29 22:29:10 1927

编程技术

面向对象编程--我的虚函数实现方法

如下图所示:类,即代表类也代表函数表,我们看是怎么调用的.注意如下规则:1、每个类的信息都保存在内存里(类型加载后);2、每个类都会保存其继承的父类或实现的接口的类型指向。3、每个实例都保持一个对实例实际类型(类类型)的指向(指针),还保持一个对实例变量类型的指针。4、类实例化时,类方法不会复制,但成员变量都会按类信息重新分配内存,并初始化其值,父类的成员变量也都会分配内存,并属于当前实例虚函数的调用规则:1、当调用实例I的方法F时,首先会从实例的类型指针

系统 2019-08-29 22:27:59 1927

编程技术

日历控件 (js)

12//////////////////////////////3//UncCalendar1.0//4//Author:Zhong@UNC//5//E-mail:zhong@uncnet.com//6//06/01/2004/

系统 2019-08-29 22:16:59 1927

编程技术

.NET4.0并行计算技术基础(2)

.NET4.0并行计算技术基础(2)上一部分介绍了CPU与“核”以及“并行”和“并发”的区别,这一部分我们将进一步介绍并行计算的性能衡量与并行计算系统的大致分类,为后面介绍.NET4.0的并行计算打下基础。3如何衡量并行计算的性能提升?之所以要研究并行计算,其目的是获得更好的性能。一个软件系统的性能,通常使用两个指标来进行衡量:(1)响应速度(Responsiveness):用户向软件系统提交一个工作任务,软件系统要花费多长的时间才能处理完毕并将结果通知用

系统 2019-08-29 22:04:37 1927

编程技术

开发人员抵触代码审查的4个原因

据调查显示,代码审查工作有助于提高软件开发质量,然而许多开发者却不愿意在他们的团队中实施代码审查工作,本文主要分析了开发者为什么会抵制代码审查工作的原因以及为什么他们会有此想法,目的是为了引导开发者加入代码审查工作。代码审查究竟是什么样的工作呢?通常情况下它是指否决质量的一种过程。大量统计数据表明代码审查极大的提高了软件质量以及降低了技术风险,不仅如此,它还降低了开发成本。一起来看下代码审查工作所带来的好处:如图所示,代码审查工作带来这么多的益处,那为什么

系统 2019-08-29 22:01:04 1927

编程技术

一堂如何提高代码质量的培训课(2)

3.可变更性前面我提到了,软件的变更性是所有软件理论的核心,那么什么是软件的可变更性呢?按照现在的软件理论,客户对软件的需求时时刻刻在发生着变化。当软件设计好以后,为应对客户需求的变更而进行的代码修改,其所需要付出的代价,就是软件设计的可变更性。由于软件合理地设计,修改所付出的代价越小,则软件的可变更性越好,即代码设计的质量越高。一种非常理想的状态是,无论客户需求怎样变化,软件只需进行适当地修改就能够适应。但这之所以称之为理想状态,因为客户需求变化是有大有

系统 2019-08-29 21:58:57 1927

编程技术

HDFS Namenode是如何工作的?

来自:http://www.csdn.net/article/2012-07-03/2807066HDFS(HadoopDistributedFilesystem)客户端通过被称之为Namenode单服务器节点执行文件系统原数据操作,同时DataNode会与其他DataNode进行通信并复制数据块以实现冗余,这样单一的DataNode损坏不会导致集群的数据丢失。但NameNode出现故障的损失确是无法容忍的,NameNode主要职责是跟踪文件如何被分割成文

系统 2019-08-12 09:30:06 1927

编程技术

观察者(Observer)模式

观察者模式又叫做发布-订阅(Publish/Subscribe)模式、模型-视图(Model/View)模式、源-监听器(Source/Listener)模式或从属者(Dependents)模式。观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态上发生变化时,会通知所有观察者对象,使它们能够自动更新自己。一个软件系统常常要求在某一个对象的状态发生变化的时候,某些其它的对象做出相应的改变。做到这一点的设计方案有很

系统 2019-08-12 09:29:46 1927

各行各业

微软企业库4.1学习笔记(十二)中间人Providers

一、Provider在.NETframeword中每一个provider都是一段代码的中间人,通过它,你的应用可以连接到一个服务或者是数据源,可以获取或者是修改服务和数据源的数据。在企业库中包含很多的providers。另外,你也可以创建自己的provider,在你的应用中满足特殊的需求。一个providertype定义了和一个模块相关的功能的接口,一个provider是一个providertype的实现。每一个模块中,对于一个providertype,都

系统 2019-08-12 09:27:24 1927

Python

跟老齐学Python之有容乃大的list(1)

前面的学习中,我们已经知道了两种python的数据类型:int和str。再强调一下对数据类型的理解,这个世界是由数据组成的,数据可能是数字(注意,别搞混了,数字和数据是有区别的),也可能是文字、或者是声音、视频等。在python中(其它高级语言也类似)把状如2,3这样的数字划分为一个类型,把状如“你好”这样的文字划分一个类型,前者是int类型,后者是str类型(这里就不说翻译的名字了,请看官熟悉用英文的名称,对日后编程大有好处,什么好处呢?谁用谁知道!)。

系统 2019-09-27 17:56:59 1926