博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

[C++]学习笔记

Posted on 2011-09-20 09:37  douyamumu  阅读(142)  评论(0)    收藏  举报
  • 函数默认实参:一般在函数声明里指定默认实参,并把函数声明放在合适的头文件里,在函数定义中就没必要再指定默认实参了。【注:若在函数定义而非函数声明里指定默认实参,则该默认实参只在定义该函数的文件里才有效。】
  • 类中定义自己的局部类型: 可以在一个class中利用typedef定义自己的局部类型localClass以供类使用,若其访问标志为public,则使用该class的代码也 能使用localClass,要注意的是在class外若要使用localClass,需要使用class::localClasss来定义或声明类型。
  • 头文件的组织:头文件中放置class的定义,非成员函数的声明,const变量的定义,以及内联函数的定义。良好的头文件风格如下:
    • 对于非成员函数和成员函数来说,都在头文件中声明,另一源文件中定义以实现声明与定义的分离。
    • 无论是非成员函数还是成员函数,若要指明其为inline,就必须将其放在头文件中定义;对于成员函数,照常在类中声明,在该头文件类外定义,定义的时候要指定其为inline;对于非成员的inline函数直接在头文件中定义,没有再声明的必要。应保持的风格是在定义时指明其为inline,而在声明时不作说明注:inline函数的定义必须在头文件是因为调用该函数的每个源文件都必须知道inline函数的具体内容以展开,因为inline函数是编译的时候就需要展开,此时无法链接到其他源文件】
    • 定义const变量,其值必须是常量。
  • enum:enum 中的成员对外是可见的,就像1,2,3这些属于int类型的常量值一样可以在程序中直接使用。如果在一个class中定义了一个public型的 enum,那么在类外要使用该enum的成员需要用class::enumMember来指定。若一个函数(无论成员函数还是非成员函数)要返回该 enum的类型,则必须使用class::enum来指定类型。
  • 无符号整型(unsigned, size_t)做减法运算时一定要注意是否会有小减大引起的溢出错误,这种错误会导致程序崩溃但又很难发现。