C++ 仿STL中的堆算法的一个实现

堆的性质之类的不再这里阐述,写这个算法只为了更好的理解STL中的堆算法,如果看不懂STL中的算法也可以来参考这里给出的算法,因为是纯C的看起来会省去很多语言方面的细节。同时里面还有一个STL中对应算法的测试以比较两者的效果。

不要再劝微软入Android坑了

越来越多的人开始建议微软放弃 Windows Phone 操作系统,转投 Android 大本营。本文不是第一篇就这件事进行评论的文章,当然也不可能是最后一篇。

这种想法烂透了。Google 已经把 Android 操作系统做的功能完善,其他企业无法使用,如果微软要转投 Android 阵营,利用 Android 的优势,就意味着要放弃 wp 开发者,放弃 wp 应用。

瞎忙的新手

和直觉相反,新手的大部分时间花在外围活动上,真正用来掌握核心业务的时间反倒不多

最近利用业余时间给朋友集成一台特殊用途服务器,专用板卡和驱动程序由第三方提供,我的任务是把软硬件集成起来,对上层软件提供API和demo代码。大约写了100行JAVA代码,配置脚本加起来20行不到,结果前前后后花掉整整一周的下班时间。

C++ 文件操作详解

C++ 通过以下几个类支持文件的输入输出:

  • ofstream: 写操作(输出)的文件类 (由ostream引申而来)
  • ifstream: 读操作(输入)的文件类(由istream引申而来)
  • fstream: 可同时读写操作的文件类 (由iostream引申而来)

打开文件(Open a file)

对这些类的一个对象所做的第一个操作通常就是将它和一个真正的文件联系起来,也就是说打开一个文件。被打开的文件在程序中由一个流对象(stream object)来表示 (这些类的一个实例) ,而对这个流对象所做的任何输入输出操作实际就是对该文件所做的操作。

C++ 虚函数和虚继承浅析

本文针对C++里的虚函数,虚继承表现和原理进行一些简单分析,有不对的地方请指出。下面都是以VC2008编译器对这两种机制内部实现为例。

虚函数

  • 定义:在某基类中声明为 virtual 并在一个或多个派生类中被重新定 义的成员函数[1]
  • 语法:virtual 函数返回类型 函数名(参数表) { 函数体 }
  • 用途:实现多态性,通过指向派生类的基类指针,访问派生类中同名覆盖成员函数

函数声明和定义和普通的类成员函数一样,只是在返回值之前加入了关键字“virtual”声明为虚函数。而虚函数是实现多态的重要手段,意思是只有对虚函数的调用才能动态决定调用哪一个函数,这是相对于普通成员函数而言的,普通的成员函数在编译阶段就能确定调用哪一个函数。举个栗子:

QA,从 1.0 到 4.0

迄今为止,敏捷开发方法在各个公司都有了长足的发展,曾经的测试人员慢慢的在向QA职能过渡,但依然很多人不了解QA和测试的区别是什么。

敏捷实践不断地演化过程,使项目中各个角色不断弱化,同时,对每个成员的要求也越来越高。“全功能团队”的提出,不单单是对开发的要求,对QA来说,想要在快速变革中具备竞争力,就现在所具备的技能来说,还是远远不够的。

C++ 编译器的工作过程

源码要运行,必须先转成二进制的机器码。这是编译器的任务。

比如,下面这段源码(假定文件名叫做test.c)。

#include <stdio.h>

int main(void)
{
  fputs("Hello, world!\n", stdout);
  return 0;
}

要先用编译器处理一下,才能运行。

C++ 过度使用C++模板

大约每隔十年,都会出现一个编程新概念,宣布自己是以往概念的继承者。我们也再一次相信,从今往后软件比以前更可靠,更容易build,或者更有意思(没有人相信它会比以前更小或者更快)。在70年代,有结构编程;在80年代,开始了面向对象编程;从90年代中期,出现了范型编程(generic programming)。范型编程得名于其用模板而使代码重用的高效技术(范型类和范型函数)。

C++ STL编程轻松入门基础

作为C++标准不可缺少的一部分,STL应该是渗透在C++程序的角角落落里的。STL不是实验室里的宠儿,也不是程序员桌上的摆设,她的激动人心并非昙花一现。本教程旨在传播和普及STL的基础知识,若能借此机会为STL的推广做些力所能及的事情,到也是件让人愉快的事情。

C++ 智能指针详解

简介

由于 C++ 语言没有自动内存回收机制,程序员每次 new 出来的内存都要手动 delete。程序员忘记 delete,流程太复杂,最终导致没有 delete,异常导致程序过早退出,没有执行 delete 的情况并不罕见。