(GeekBand)C++之路 1

  本周在侯捷老师的带领下,我踏上学习C++的路程。作为一个写程序还没一年且只有C语言基础的大学生,跟一起学习的大牛们还有很大的差距,不过从无到有还是有颇多的收获。

  以前在学习C语言时,我把注意力大多数集中在了是一门语言的语法,以及一些算法身上,然后按部就班按照老师的意思去写一个程序,而侯老师的讲述更让我意识到了一门语言的用途,即面向对象的真正意义,也知道了为何以前写程序心中没有一种创造感。

   在第一周的学习中 ,侯老师用标准库的complex类例子为我们演示了一个类的形成。防卫式的声明,声明我的第一C++程序的开始。起初,我对老师一开始就展示出的class complex一头雾水,到后面,侯老师一层一层地揭开了他们神秘的面纱。大致如下:

  1.  我理解class类比了C里的结构体,只不过多出来了private部分。而函数主要放在public里,数据放在private里。

   2. 构造函数可以有很多个,但是冲突之后不能重载。

  3. 为培养大气的编程风格,构造函数以初值列的形式书写,如下:(深刻体会到了细节的力量)

complex (double r = 0, double i = 0)

: re (r), im (i)

{ } 

4.C++里有它独特的传数据方式,by reference(引用),类似于指针却大多数时候优于指针,传送者无需知道接收者是以reference接收,用起来简单方便且不容易出错,因此侯老师多次强调参数传递尽量传引用,返回值传递尽量用引用。而当返回的不是local object时,则不能return by reference,本地变量不能引用传出去。数据前加const。

5.老师另一强调的重点就是const,不用修改的这词是让程序员清楚地认识到一个参数的用途,对于以前的我可能根本不会在意这个关键词,以前的我在意如何完成一个编程题,完成一个任务,而侯老师教我的,是如何完美地写出一个程序。

6.临时对象的寿命到下一行。

7.操作符重载的例子让我清楚地认识到了编程为何需要完美,程序员需要考虑到用户可能出现的各种情况,尤其是<<的操作符重载让我记忆深刻:

ostream&

operator << (ostream& os, const complex& x)

{

return os << '(' << real (x) << ',' << imag (x) << ')';


}


如果让我写,可能直接就会用void,而大牛们考虑到了用户可能会用到cout<

8.友元函数能直接访问class中private中的数据。相同class的各个object互为友元。(其实这句我还不是很能理解)。


以上是我整理后的这周的学到的知识重点,可能有我遗漏未被重视的,请各位大牛多加指点,望今后的学习能多多帮助。

你可能感兴趣的:((GeekBand)C++之路 1)