1第三章类和数据抽象(II)?能够动态建立和撤销对象?能够制定cons对象和const成员函数?理解友元函数和有元类的用途?理解怎样使用静态数据成员和静态成员函数? 引言?const对象和const成员函数?友元函数和友元类?this指针? const对象和const成员函数?最低访问权限是良好软件工程的基本原则?const对象const Time noon (12, 0, 0);?不允许调用const对象中的非const成员函数?只有const成员函数才能访问const对象? const对象和const成员函数(II)?常见程序设计错误?定义const成员函数时,在函数中修改了对象数据?定义const成员函数时,在函数中调用了非const成员函数?在const中调用非const成员函数? const对象和const成员函数(III)?const成员函数的声明int getValue() const;?const成员函数的定义int getValue() const{ return privateDataMember; }?const 对象允许构造函数和析构函数修改对象?const对象不能被赋值, const对象和const成员函数(IV)#include <>#include “”main(){ const Time t(19,33,52); //(12); //错误:(20); //错误:(39); //错误:非const函数return 0;} const对象和const成员函数(V)?用成员初始化值初始化类的数据成员Increment::Increment(int c,int I):increment(i) //成员初始化值 { count=c;}?其中的:increment(i)使得increment被初始化成值i。如果需要多个数据成员的初始化值,只需简单的把它们列在冒号之后,之间用逗号分隔。 const对象和const成员函数(VI)?Const对象和const变量需要用成员初始化值进行初始化。赋值方法是不允许的。Increment::Increment(int c,int i){ //没有初始化const成员increment count=c; increment=i;//错误:不能修改const成员 } 把类作为其它类的成员?可以把一个类的对象作为另一个类的成员——复合(软件重用的一种形式)?如果类Employee有两个成员birthDate和hireDate是类Date的对象,建立对象时必须要能把参数传递给成员对象的构造函数Employee::Employee(char *fname, char *lname,int bmonth, int bday, int byear,int hmonth, int hday, int hyear):birthDate(bmonth, bday, byear),hireDate(hmonth, hday, hyear) {……}10Class Employee{public: Employee(char*,char*,int,int,int,int,int,int,); void print() const;private: char lastName[25]; char firstName[25]; Data birthData; Data hireData;}; Employee::Employee(char *fname, char *lname,int bmonth, int bday, int byear,int hmonth, int hday, int hyear):birthDate(bmonth, bday, byear),hireDate(hmonth, hday, hyear) {……}
C++_chap03 类和数据抽象(II)-课件(PPT·精·选) 来自淘豆网www.taodocs.com转载请标明出处.