banner

将其说明为const成员函数。

6.C++为非静态成员函数提供了一个this自引用指针。每当创建一个对象时,系统就把该对象的this指针初始化为指向该对象,也就是说,每个对象都有一个this指针变量,它的取值就是对象本身的地址。当对象调用一个非静态成员函数时,系统会自动将该对象的this指针作为一个隐含参数传给函数。当非静态成员函数存取数据成员时隐含地使用这个this指针指定该数据成员。

tips

7.可以为类说明朋友。类的朋友访问类的成员时,不受数据封装带来的限制。

8.使用类模板,可以为类定义一个模板,使得类中的某些数据成员、成员函数的参数及成员函数的返回值为任意类型。因此,在编写造函数,则编译器会为程序定义一个默认构造函数;否则,必须自己提供默认构造函数。默认构造函数可以没有任何参数;如果有,则必须给所有参数都提供默认值:

对于未被初始化的对象,程序将使用默认构造函数来创建:

就像对象被创建时程序将调用构造函数一样,当对象被删除时,程序将调用析构函数。每个类都只能有一个析构函数。析构函数没有返回类型(连void都没有),也没有参数,其名称为类名称前加上〜。例如,Bozo类的析构函数的原型如下:

~Bozo(); // class destructor

如果构造函数使用了new,则必须提供使用delete的析构函数至曾想把整个壁画所在的墙面带回法国(拿破仑也十分欣赏这幅画作,因此他在占领米兰后曾下令不允许士兵破坏这面墙壁,虽然最后这项命令并没有得到很好的执行)。1943年,修道院曾在战争中被敌军轰炸,但幸运的是,壁画在米兰人民的保护下并没有受到损坏。《最后的晚餐》位于修道院圣餐厅的北墙,它的对面是另一位同时期画家多纳多·孟托法诺(Donato Montorfano)于1495年完成的画作《耶稣受难图》,在这幅画的下方则是米兰宫廷中几位重要人物的肖像画,其中包括米兰大公卢多维科·斯福尔扎(“摩尔人”)、他的长子马克西米利安、妻子比阿特丽斯·德·埃斯特(Beatrice d’Este)以及他的另一个儿子弗朗