美文网首页
Boolan C++ 第一周课程--面向对象编程

Boolan C++ 第一周课程--面向对象编程

作者: wild_horse | 来源:发表于2017-02-12 20:05 被阅读0次

一、导论

classes的两种经典分类是

  • class without pointer members (complex)

  • class with pointer members (string)

第一周是第一种,不带指针的类,以complex 的讲解为主。

二、头文件

在同文件中尽量采用防卫式声明


#ifndef __NAME__

#define __NAME__

.......


#endif

头文件的布局

三、构造函数

class complex
{
 public:
  complex (double r = 0, double i = 0)
  : re (r), im (i) { }//初始化列表
 private:
  double re;
  double im;
};

在构造函数的初始化列表中,初始化顺序是以数据成员定义顺序为标准,在这个构造函数先初始化re,再初始化im,就算在初始化列表中改变他们的顺序也不会改变初始化的顺序,所以要按照数据成员顺序写入初始化列表,防止产生未定义行为。

  complex (double r = 0, double i = 0)
  : im (i),re (r) { }//依旧是先初始化re,再初始化im

四、函数签名

C++允许函数重载,函数重载必须保证函数签名不同,函数签名包括 函数名,参数列表,还有 const 关键字。

double real() {}
double real(double r)  {}//函数重载

五、小结

第一周的教程主要带我们进入面向对象设计的一些基础,比较容易理解,但是要做到像侯捷老师所说要写得大气。

侯捷老师反复强调的三个建议:

  1. 防卫式声明
  2. 不修改数据成员的成员函数要写上const
  3. 使用 pass by reference

相关文章

网友评论

      本文标题:Boolan C++ 第一周课程--面向对象编程

      本文链接:https://www.haomeiwen.com/subject/vmnaittx.html