
C++
gisocean
这个作者很懒,什么都没留下…
展开
-
重读C陷阱与缺陷
C陷阱与缺陷是一本很薄,很易读,很有内容的小书,译者高巍翻译得不错,书的纸张封皮我都很喜欢。今天花了几个小时又粗粗翻了一遍,记点笔记。1. 词法分析中的贪心法 C中有一个很简单的规则:每一个符号应该包含尽可能多的字符。也就是说,编译器将程序分解成符号的方法是,从左到右一个字符一个字符地读入,如果该字符可能组成一个符号,那么再读入下一个符号,判断已经读入的两个字符组成的字符串是否可能是一个符号原创 2008-11-05 21:01:00 · 676 阅读 · 0 评论 -
如何实现C和C++的相互调用
转自:http://blog.youkuaiyun.com/abnerchai/archive/2006/11/29/1419214.aspx〈一〉如何实现C中调用C++如何用c语言调用c++做成的动态链接库, 转至http://blog.donews.com/xzwenlan/archive/2005/05/31/405799.aspx链接库头文件://head.hclass A{ pub转载 2008-11-05 21:58:00 · 756 阅读 · 0 评论 -
重读Effective C++
好久没看C++的书了,用C++需要注意非常多的陷阱,写起程序来确确实实是戴着镣铐跳舞。可是,没办法,找工作还是得靠它。前几天重读了Effective C++,还是很喜欢侯捷的语言,在这里把常用的注意事项记录下来。1. 使用相同形式的new和delete2. 总是让base class拥有virtual destructor(delete pBase调用哪个析构函数?)3. 如果class内动态分配原创 2008-11-04 16:03:00 · 691 阅读 · 0 评论 -
C++函数的注意问题
1. 尽量紧凑,避免函数过长,避免嵌套过深;2. 在可以使用&&的地方避免使用嵌套的if;3. 正确选择通过值、引用和指针进行参数传递;4. 优先使用++和--的前缀形式,前缀形式少定义了一个变量;5. 考虑重载避免隐式类型转换;6. 不要重载&&、||和,操作符,因为无法保证求值顺序;7. 不要编写依赖函数求值顺序的代码,因为函数参数的求值顺序无法保证;8. 尽可能延缓变量的定义;9. 优先使用原创 2008-11-05 13:03:00 · 645 阅读 · 0 评论 -
STL vector注意问题
vector v;1. v[i]不进行越界检查,v.at(i)进行边界检查。2. reserve和capability相对,是关于vector的容量 v.reserve(i); v.capability()至少为i。 reserve操作不改变vector中的内容。通常,如果知道要向容器中放入的元素数目,可先调用reserve以避免不必要的重原创 2008-11-05 17:10:00 · 927 阅读 · 0 评论 -
C++中类的设计和实现
0. 一个实体应该有一个紧凑的职责;用小类代替巨类;用组合代替继承;优先编写非成员非友员函数(>,+,*等)1. 对于值类(如std::pair,std::vector),模仿内置类型: 有一个public析构函数,复制构造函数和带有语义的赋值操作符; 没有虚拟函数; 用做具体类,不用作基类; 总是在栈中实例化,或者作为另一个类直接包含的成员实例化。原创 2008-11-05 12:55:00 · 1574 阅读 · 0 评论 -
C++中的错误处理与异常
本文主要是总结了C++编程规范和Exceptional C++的有关内容1. 什么时候应该抛出异常? 只有那些侦测出错误但自己却无法处理的地方抛出异常。错误就是阻止函数成功操作的任何失败,有三种类型: 违反或无法满足前条件:如一个参数和状态约束被违反,或不满足它调用关键函数的前条件 无法满足后条件:无法生成返回值 无法重新建立不变式:对类的成员函数 例如,要设计一个File类,原创 2008-11-05 08:53:00 · 949 阅读 · 0 评论 -
一道关于函数声明与对象定义的笔试题
下面代码编译会产生问题的是哪句? struct Test { Test(int){} Test(){} void fun(){} }; int main(void) { Test a(1); //1 a.fun(); //2 Test b(); //3 b.fun(); //4 r原创 2008-11-06 09:53:00 · 592 阅读 · 0 评论