![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++技术
luofuliang
这个作者很懒,什么都没留下…
展开
-
【转贴】没有吃够苦头的C++程序员称不上了解C++
个人非常认同这个学习曲线图,C++确实是一门非常复杂的语言,没有多年开发经验,写上多少万行代码,根本就很难领悟到个中的感受。近日,国外技术博客lbrady.com 发表了一篇非常有意思的博文。文章认为C++语言庞大而复杂,只有那些在c++开发之旅上吃过许多苦头的程序员才能真正的了解C++。显然作者受到一些刺激,他的博文名称为“永远不要相信那些自称懂C++的程序员(Never trust a programmer who says he knows C++)”。原文如下: 经过一段长时间的面试工作后,我意转载 2010-08-03 21:40:00 · 659 阅读 · 0 评论 -
volatile和LockingPtr
muduo里面有一个简单的threadpool实现,但还是不过瘾,于是看看boost有没有更复杂的,才发现居然没有纳入,后来google到sorceforge里面有一个开源的,也是基于boost实现的,于是下载看看。代码不多,但看不习惯泛型代码还是非常痛苦的。浏览过程中发现了一个比较怪的用法(locking_ptr.hpp),一个ptr和一个mutex封装成一个wrapper来使用,第一时间就觉得有点效率不高,作者是这些解析的:* The class is a wrapper for a volatile原创 2010-09-18 22:53:00 · 1226 阅读 · 0 评论 -
对头文件依赖的新理解
今晚随手翻看了一下《Effective C++》,突然对条款34: 将文件间的编译依赖性降至最低,比较感兴趣,于是又重看了一次。对类型前向声明代替头文件引入适用的情景有了一个新的理解,以前用的最多的是,适用指针或者引用,但文中还说到了返回值和参数都可以利用这一规则(以前觉得是不行的)。于是网上google了一下,结果找到了《Google C++风格指南》里面关于头文件依赖的章节。当一个头文件被包含的同时也引入了新的依赖, 一旦该头文件被修改, 代码就会被重新编译. 如果这个头文件又包含了其他头文件, 这些头原创 2010-10-04 22:53:00 · 3538 阅读 · 1 评论 -
简评一下看过的C++书籍
<br /> <br />看过的书不多,但还是有几本的,下面随心而发一下。<br />《The Design and Evolution of C++》<br />《C++语言的设计和演化》<br />C++作者写的书,第一次看的时候已经入迷了,平时有空也会翻看一下。<br /><br />《Inside the C++ Object Model》<br />《深度探索C++对象模型》<br />这是一本看完之后自我感觉上了一个档次的书,如果你不是新手,都建议认真看上几次。<br /><br />《Effe原创 2010-10-07 15:43:00 · 2362 阅读 · 1 评论 -
简析function/bind如何实现类成员函数指针绑定调用
<br />在一次项目开发中,需要将类内的一些非static成员方法作为线程函数启动,<br />大家都知道了,线程函数是有要求的,包括返回值、参数类型和个数,而且要求是全局函数或类内的static函数。<br />当然,使用做多的是,在外面封装一下函数,然后把类实体,如this作为参数传递进去,然后在函数内通过this调用成员方法。<br />但这样做比较别扭,额外写不少不少代码,而boost的function和bind恰恰解决了这个问题。<br />可能不少人有疑惑,类的非static成员函数为啥就比较原创 2010-10-08 21:33:00 · 3346 阅读 · 0 评论 -
最近在学习Posix Thread
<br />网上找了两本电子版的,都是全英,学习之余锻炼en文也是不错的选择。<br />《Pthreads Primer.pdf》《Pthreads Programming.chm》原创 2010-12-09 16:37:00 · 487 阅读 · 0 评论 -
冗余包含卫哨如何加快编译速度?
<br />最近读了两本书,一本是《大规模C++程序设计》,另一本是《C++必知必会》。<br />里面都有提到卫哨这个概念,譬如包含卫哨(内部卫哨)和冗余包含卫哨(外部卫哨)。<br />其实包含卫哨大家平时编程过程中是用的特别特别多的,<br />#ifndef HDR1_H<br />#define HDR1_H<br />//头文件的实际内容<br />#endif<br /> <br />如果面试过程中问到这个有什么作用,相信很多童鞋都能应答自如的了。<br />但其实真正让我感兴趣的是冗余包含卫原创 2010-10-26 11:41:00 · 1232 阅读 · 0 评论 -
有些东西从看的明到看的有感觉了,层次可能就不一样了。
<br />http://blog.csdn.net/myan/archive/2010/10/09/5928531.aspx<br /> <br />虽然我很喜欢C++,但作为一个程序员,应该用open mind的心态去拥抱其他语言,<br />很多东西没有最好,只有适合不适合而已,语言也是一样的。<br />原创 2010-11-12 22:49:00 · 732 阅读 · 0 评论 -
C++语言99个常见编程错误57:对参数的直接初始化
首先,本书的翻译看起来挺别扭的,远没有effective系列朗朗上口。但书中作者贵为贝尔实验室最早使用C++语言的人之一,相信不少观点还是值得翻看的。关于常见错误57,有兴趣并且能解析清楚的人,相信对编译器和运行效率方面还是比较关心的。事实上,标准是标准,实现是实现,所以编译器实现和标准有出入就不足为奇了。所以当看到f(1337)这样貌似简单的调用,理论上居然会生成两个临时对象,相信不少人还是比较惊讶的。因为正如书中所说,C++标准明明白白的:参数传递是以复制初始化实现的。由于1337不是yFormalAr原创 2011-02-28 16:51:00 · 1121 阅读 · 1 评论