C/C++ - 哆啦比猫's Blog - I'm an ArchLinuxer

C++ 全局单例封装 C 语言库

C 语言的很多库都需要在程序开头初始化,程序结束时释放资源。在 C++ 中常规的封装方法是:

module.hh
 1 namespace module
 2 {
 3     // life time management
 4     void init();
 5     void free();
 6 
 7     // operations
 8     void foo();
 9     void bar(int baz);
10 }

这样的 API可以和 C 语言中的对应起来,但是这种 API 极易出错,比如,有可能会在 init 前调用了 foo,也可能在 free 后调用了 bar,可能 init 了多次,也可能忘了 free 等等。本文将讨论这种类型的 API 在 C++ 中该怎样设计才能更安全、更 fool-proof。

继续阅读

「译」 C++ 五大谣言(及辟谣),第1部分

译者注:本文于 2014年12月9日 由 C++ 之父 Bjarne Stroustrup 发表于 C++ 官方网站上 https://isocpp.org/blog/2014/12/myths-1

「为了您在冬季能享受阅读的快乐,我们很高兴地推出了这个由 Bjarne Stroustrup 写的三部分系列文章。本文是第一部分,第二和第三部分将会在接下来的两个星期一发表,届时正好是圣诞节。Enjoy. ——小编」

简介

在这个由三个部分构成的系列文章中,我将会探索并破解以下五大 C++ 谣言:

  1. “要理解 C++,你必须先学会 C”
  2. “C++ 是面向对象语言”
  3. “要写可靠的软件,你需要垃圾回收机制”
  4. “为了软件运行的效率(efficiency),你必须写底层代码”
  5. “C++ 只适合大型、复杂的程序”

继续阅读

OpenCV 直线检测

这货玩玩的

到时候再学学手势识别之类的就更好玩了~喵~~

继续阅读

[c] 100行实现简单的正则表达式引擎

注:此方法效率不高,仅供学习,产品级代码请使用 regexp 或 pcre 库!

继续阅读

gcc 匿名函数

看了一下 GCC Extentions 的手册,发现了点东西,利用这些东西终于可以实现我幻想很久的匿名函数了!

继续阅读

用 OpenAL 播放 ogg

不想说什么,直接上代码  

继续阅读

lanos - Lanos' AN OS

终于知道怎么用 gcc 写OS了……

原来 GRUB 载入内核前会切换到 32bit 模式,这样就不用自己写 boot sector / loader / 32bit enabler 了

主页:http://cjsp.sf.net/?page=lanos

写了个三维迷宫练练手

终于写了个像样点的 OpenGL 程序了

继续阅读




© 2010, 2011, 2012, 2013, 2014, 2015-2016 and 2017 Giumo Xavier Clanjor (哆啦比猫/兰威举).
© 2013, 2014, 2015-2016 and 2017 The Dark Colorscheme Designed by Giumo Xavier Clanjor (哆啦比猫/兰威举).
知识共享署名·非商业性使用·相同方式共享 3.0 中国大陆许可协议
| © 2007 LinuxGem | Design by Matthew "Agent Spork" McGee