自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

谢德军的专栏

I came, I saw, I conquered

  • 博客(18)
  • 收藏
  • 关注

转载 开始工作之后的“十个”不要

http://www.52rd.com/Blog/Detail_RD.Blog_sunhuibo_12969.html第一:不要认为停留在心灵的舒适区域内是可以原谅的每个人都有一个舒适区域,在这个区域内是很自我的,不愿意被打扰,不愿意被push,不愿意和陌生的面孔交谈,不愿意被人指责,不愿意按照规定的时限做事,不愿意主动的去关心别人,不愿意去思考别人还有什么没有想到。这在学生时代是很容易被理解的,有时候这样的同学还跟“冷酷”“个性”这些字眼沾边,算作是褒义。然而相反,在工作之后,你要极力改变这一现状。否则,

2010-09-16 13:24:00 488

原创 条款14:在资源管理类中小心coping行为(Think carefully about copying behavior in resource-managing classes.)

1)复制RAII对象必须一并复制它所管理的资源,所以资源的copying行为决定RAII对象的copying行为。2)普遍而常见的RAII class copying行为是:抑制copying、施行引用计数法(reference counting )。不过其他行为也都可能被实现。

2010-08-23 14:22:00 621

原创 条款13:以对象管理资源(Use objects to manage resources.)

1)为防止资源泄漏,请使用RAII对象,它们在构造函数中获得资源并在析构函数中释放资源。2)两个常被使用的RAII classes分别是trl::shared}tr和auto- ptr。前者通常是较佳选择,因为其copy行为比较直观。若选择auto- ptr,复制动作会使它(被复制物)指向null。

2010-08-23 12:00:00 577

原创 条款12:复制对象时勿忘其每一个成分(Copy all parts of an object.)

1)Copying函数应该确保复制“对象内的所有成员变量”及“所有base class成分”。2)不要尝试以某个‘opying函数实现另一个copying函数。应该将共同机能放进第三个函数中,并由两个copying函数共同调用。

2010-08-20 12:23:00 611

原创 条款11:在operator=中处理“自我赋值”(Handle assignment to self in operator=.)

1)确保当对象自我赋值时operator=有良好行为。其中技术包括比较“来源对象”和“目标对象”的地址、精心周到的语句顺序、以及copy-and-swap。2)确定任何函数如果操作一个以上的对象,而其中多个对象是同一个对象时,其行为仍然正确。

2010-08-20 11:56:00 1363

原创 条款10:令operator=返回一个reference to *this(Have assignment operators return a reference to *this.)

1)令赋值(assignment)操作符返回一个reference to*this。

2010-08-20 10:53:00 551

原创 条款09:绝不在构造和析构过程中调用virtual函数(Never call virtual functions during construction or destruction.)

1)在构造和析构期间不要调用virtual函数,因为这类调用从不下降至derived class(比起当前执行构造函数和析构函数的那层)。

2010-08-19 19:16:00 323

原创 条款08:别让异常逃离析构函数(Prevent exceptions from leaving destructors.)

1)析构函数绝对不要吐出异常。如果一个被析构函数调用的函数可能抛出异常,析构函数应该捕捉任何异常,然后吞下它们(不传播)或结束程序。2)如果客户需要对某个操作函数运行期间抛出的异常做出反应,那么class应该提供一个普通函数(而非在析构函数中)执行该操作。

2010-08-19 18:11:00 349

原创 条款07:为多态基类声明virtual析构函数(Declare destructors virtual in polymorphic base classes.)

1)polymorphic(带多态性质的)base classes应该声明一个virtual析构函数。如果class带有任何virtual函数,它就应该拥有一个virtual析构函数。2)Classes的设计目的如果不是作为base classes使用,或不是为了具备多态性(polymorphically),就不该声明virtual析构函数。

2010-08-19 17:32:00 459

原创 条款06:若不想使用编译器自动生成的函数,就该明确拒绝(Explicitly disallow the use of compiler-generated you do not want.)

1)为驳回编译器自动(暗自)提供的机能,可将相应的成员函数声明为private并且不予实现。使用像Uncopyable这样的base class也是一种做法。

2010-08-19 16:11:00 461

原创 条款05:了解C++默默编写并调用哪些函数(Know what functions C++ silently writes and calls.)

1)编译器可以暗自为class创建default构造函数、copy构造函数、copy assignment操作符,以及析构函数。

2010-08-19 15:44:00 408

原创 条款04:确定对象被使用前已先被初始化(Make sure that objects are initialized before they're used.)

1)为内置型对象进行手工初始化,因为c什不保证初始化它们。2)构造函数最好使用成员初值列(member initialization list ),而不要在构造函数本体内使用赋值操作(assignment )。初值列列出的成员变量,其排列次序应该和它们在class中的声明次序相同。3)为免除“跨编译单元之初始化次序”问题,请以local static对象替换non-local static对象。

2010-08-19 14:43:00 678

原创 条款03:尽可能使用const(Use const whenever possible.)

1)将某些东西声明为const可帮助编译器侦测出错误用法。const可被施加于任何作用域内的对象、函数参数、函数返回类型、成员函数本体。2)编译器强制实施bitwise constness,但你编写程序时应该使用“概念上的常量性” (conceptualconstness)。3)当const和non-const成员函数有着实质等价的实现时,令non-const版本调用const版本可避免代码重复。

2010-08-18 16:54:00 564

原创 用C/C++扩展Python(Extending Python with C or C++)

<br /> <br />用c/c++扩展python的方式有很多,比较常见的方式:1)native,2)swig,3)boost_python,这里简单介绍一下python自带的native方式。<br />官方文档:http://docs.python.org/extending/extending.html1.简单示例:1.1 span_system.cpp<br />//span_system.cpp#include <Python.h>static PyObject *spam_sys

2010-07-26 13:40:00 1234

原创 GDB STL vector打印

gdb vector stl print

2010-07-21 16:17:00 17405 3

转载 史蒂夫 乔布斯(Steve Jobs)在 Stanford 2005 毕业典礼上的演讲

<br />特别喜欢的一段演讲:<br />http://www.rubik.com.cn/steve_jobs.htm

2010-07-18 23:25:00 710

原创 条款02:尽量以const, enum, inline替换#define(Prefer consts,enums, and inlines to #defines)

1)对于单纯常量,最好以const对象或mums替换#defineso2)对于形似函数的宏(macros ),最好改用inline函数替换#define

2010-07-13 00:15:00 512

原创 条款01:视C++为一个语言联邦(View C++ as a federation of languages)

1)C++高效编程守则视状况而变化,取决于你使用C++的哪一部分。

2010-07-13 00:14:00 801

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除