Effective C++ 读&思
文章平均质量分 74
bcypxl
这个作者很懒,什么都没留下…
展开
-
尽量以const和inline取代#define
#define是属于预处理器指令的,在Effective C++中提到的条款1的标题如果改为“尽量以编译器(compiler)取代预处理器(preprocessor)”或许更好,因为#define通常不被视为语言本身的一部分。 何为预处理器? 预处理器是编译器把C++代码编译为机器指令之前执行的一个过程,所有的预处理器都是#开头,以便与C++语句区分开来。 何为#define指令? 该指令原创 2013-11-02 15:06:28 · 1055 阅读 · 0 评论 -
尽量以<iostream>取代<stdio.h>
在包含的scanf和printf及其家族虽然是可移植的,高效的,但它们都还不够完美。尤其是它们不具型别安全(type-safe)性质,也都不可扩充。由于型别安全性和扩充性正是C++的基石,所以printf/scanf的弱点正是operator > 的长处: int i; Rational r; //r是一个分数(rational number) ......... cin >> i >>原创 2013-11-03 14:00:12 · 2086 阅读 · 0 评论 -
尽量以new和delete取代malloc和free
记得一次面试被问到new和malloc的区别,答曰:new是一个操作符,malloc是一个函数。面试官曰:也就是没有区别是吧!晕,难道我说的不是区别吗?看来我没有说到他想听到的东西。也罢,平常书读的少了,思考的也不多,对这些问题总是说不到本质上去。所以励志读遍IT界的大牛神书,多多的思考,多多的实践! malloc和free是C语言中提供我们用于堆内存分配的库函数,那时还没有C++的构造函数,析原创 2013-11-04 18:40:12 · 976 阅读 · 2 评论