VC++深入详解 笔记 第二章(1)

来源:互联网 发布:网络统考英语 编辑:程序博客网 时间:2024/06/07 10:51

      C语言有一些缺点,所以人们发明了C++编程语言。

      P27 相比C语言,C++有不少优点,主要体现在封装性(Encapsulation)、继承性(Inheritance)和多态性(Polymorphism)。封装性把数据与操作数据的函数组织在一起,不仅使得程序结构更加紧凑,并且提高了类内部数据的安全性;继承性增加了软件的可扩充性及代码重用性;多态性使软件设计人员在设计程序时可以对问题进行更好的抽象,有利于代码的维护和可重用。

      P29 在C++语言中,struct和class唯一区别是它们的成员的默认访问权限不同。struct的变量成员和函数成员的默认访问权限都是public,而class的变量成员和函数成员的默认访问权限则为private。
      class也可以像struct那样只有变量成员,比如下面的程序:

      P40 this指针是C++语言提供的一个特殊指针,它指向对象本身,代表了对象所占内存的首地址。下面是示例代码:

      P44 在子类中调用父类的带参数的构造函数时,如果父类的构造函数有参数,而子类的构造函数没有参数,那么程序会产生错误。因为调用子类构造一个对象时,程序会首先调用父类的默认构造函数(即不带参数的构造函数),但是现在父类只有一个带参数的构造函数,所以程序会产生错误。解决办法是在子类的构造函数中显式的调用父类的带参数的构造函数。如下面代码所示:

      注意程序中fish类的构造函数那一行代码:fish():animal(400,300)。在fish类的构造函数后,加一个冒号(:),然后加上父类的带参数的构造函数。这样,在子类的构造函数被调用时,系统就会去调用父类的带参数的构造函数去构造对象。这种初始化方式,还常用来对类中的常量(const)成员进行初始化,如下面的代码所示:

      当然,类中普通的成员变量也可以采取此种方式进行初始化,然而,这就没有必要了。

      P46 类的继承及类中成员的访问特性,如下图所示:

      要注意的是,基类的private成员只能被自己类中的函数成员访问,不管子类以哪种方式继承,都不能继承基类的private成员,没有访问它的机会

原创粉丝点击