木有寸557

 

12 2012 档案

C/C++ 避免使用宏
摘要:概述: 宏是C和C++语言的抽象设施中最生硬的工具,它是披着函数外衣的饥饿的狼,很难驯服,它会我行我素地游走于各处。要避免使用宏。讨论: 在C++中,几乎从不需要使用宏。 可以用const或者enum定义易于理解的常量,用inline避免函数调用的开销,用template指定函数系列和类型系列,用namespace避免名称冲突。 C++的宏的主要问题在于,它们表面上看起来很好,而实际上做的却是另一回事。宏会忽略作用域,忽略类型系统,忽略所有其他的语言特性和规则,而且会劫持它为文件其余部分所定义(#define)的符号。宏调用看上去很像符号或者函数调用,但实际上并非如此。宏... 阅读全文

posted @ 2012-12-06 19:46 小猪_你快跑 阅读(434) 评论(0) 推荐(0)

C++中 运算符和函数的区别
摘要:运算符和函数,要说区别,大概也就是(1)语法形式上会有区别;(2)运算符只能重载,不能自定义,函数的名字随便你起,只要是个标志符就行;但运算符不行,比如,你无法仿照其它语言的符号,自己定义一个乘方运算符“**”。(3)任何函数都可以重载或者覆盖,但通常你不能改变运算符作用于内置类型的行为,比如你不能通过重载“operator+”,让3+2产生出6来。至于new和malloc,这是两个具体的东西,这两个倒是有本质的区别,而不仅仅是语法形式的区别。比如,至少malloc不会调用构造函数,而new会;malloc不会抛出异常,而new会;你无法重新定义malloc失败时的默认行为(返回null),但 阅读全文

posted @ 2012-12-05 21:32 小猪_你快跑 阅读(624) 评论(0) 推荐(0)

导航