码迷,mamicode.com
首页 > 编程语言 > 详细

Effective C++

时间:2015-03-11 23:32:01      阅读:430      评论:0      收藏:0      [点我收藏+]

标签:c++   面向对象   

01.视C++为一个语言联邦

  • C
  • Object-Oriented C++
  • Template C++
  • STL

过程形式(procedural),面向对象形式(object-oriented),函数形式(functional),泛型形式(generic),元编程形式(metaprogramming)

问题:

泛型形式和元编程形式的区别?

过程形式和函数形式的区别?

结论:

对于内置类型而言pass-by-value通常比pass-by-reference高效。

02.尽量以const,enum,inline替换#define

char * const 指针不可更改

const char* 指针指向内容不可更改

define存在的问题:

  • 编译错误信息中无法展示宏名称,造成定位问题不够高效。define不会进入符号表。
  • define变量未加括号引入问题。
  • define替换变量使用++时引入问题。

#define CALL_WITH_MAX(a,b) f((a) > (b) ? (a) : (b))

CALL_WITH_MAX(++a,b); // a被累加两次,和预期不符

结论:

对于单纯常量,以const对象或enum替换define

对于类似函数形式的宏,以inline函数替换define

遗留问题:

enum的详细使用





Effective C++

标签:c++   面向对象   

原文地址:http://blog.csdn.net/zjufirefly/article/details/44205199

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!