3.1类与对象的定义 (3)在类的 protected部分说明的数据成员和成员函数是 不能在类之外存取的,只有类的成员函数及其子类(派 生类)可以存取 protected的成员。 (4)当定义类时,当未指明成员是哪部分时,默认是属 于 private成员,但一般不要采用默认形式 如:下例中定义描述图书的类定义 class Record i private / private成员 char bookname[20];/数据成员 bookname /用于表示图书的名称 int number;/数据成员 number,表示图书编号 U回
返回 6 3.1 类与对象的定义 (3)在类的protected部分说明的数据成员和成员函数是 不能在类之外存取的,只有类的成员函数及其子类(派 生类)可以存取protected的成员。 (4)当定义类时,当未指明成员是哪部分时,默认是属 于private成员,但一般不要采用默认形式。 如:下例中定义描述图书的类定义 class Record { private: //private成员 char bookname[20]; //数据成员bookname, // 用于表示图书的名称 int number; //数据成员number,表示图书编号
3.1类与对象的定义 bublIc / public成员 void regist(char*a,intb);∥成员函数 regist,用于给 /各数据成员赋值 void show;/成员函数how,显示各数据成员的值 3.要特别注意,在类的定义中,类的说明部分的右边大 括号后面必须有 4.根据类的定义,可看出:类是实现封装的工具,所谓 封装就是将类的成员按使用或存取的方式分类,有条 件地限制对类成员的使用,而封装是通过 public和 private与成员函数实现的。 privatel的成员构成类的内 部状态, public的成员则构成与外界通信的接口,通 过 publicl的成员函数来使用 privatel的数据成员,从而在 C++中实现了封装。 U回
返回 7 3.1 类与对象的定义 public: //public成员 void regist(char *a,int b); //成员函数regist,用于给 //各数据成员赋值 void show(); //成员函数show,显示各数据成员的值 }; 3. 要特别注意,在类的定义中,类的说明部分的右边大 括号后面必须有一 “;”. 4. 根据类的定义,可看出:类是实现封装的工具,所谓 封装就是将类的成员按使用或存取的方式分类,有条 件地限制对类成员的使用,而封装是通过public和 private与成员函数实现的。private的成员构成类的内 部状态,public的成员则构成与外界通信的接口,通 过public的成员函数来使用private的数据成员,从而在 C++中实现了封装
3.1类与对象的定义 312成员函数的定义 类中的成员函数可以在以下两处定义 (1)将成员函数的定义直接写在类中: 如:对于前面定义的图书类 Record来说,其成员函数 regist和show的定义可直接写在类的定义体中。 class record i private char bookname 201 int number U回
返回 8 3.1 类与对象的定义 3.1.2 成员函数的定义 类中的成员函数可以在以下两处定义: (1)将成员函数的定义直接写在类中: 如:对于前面定义的图书类Record来说,其成员函数 regist和show的定义可直接写在类的定义体中。 class Record { private: char bookname[20]; int number;
3.1类与对象的定义 public void regist(char*a,intb)∥成员函数 regist)的定义 strcpy( bookname,a);/给数据成员 bookname赋值 number =b;/给数据成员 number 赋值 void showt)∥成员函数 show(的定义 cout<”名称:”< cbooknames<endl; cout<<3号码:”<< number<<endl; U回
返回 9 3.1 类与对象的定义 public: void regist(char *a,int b) //成员函数regist()的定义 { strcpy(bookname,a); //给数据成员bookname赋值 number=b; //给数据成员number赋值 } void show() //成员函数show()的定义 { cout<<”名称:”<<bookname<<endl; cout<<”号码:”<<number<<endl; } };
3.1类与对象的定义 在类中直接定义成员函数的情况一般适合于成员函数规 模较小的情况,也就是说它们一般为内联函数,即使没有 明确用 linline关键字。 (2)在类的定义体中只写出成员函数的原型说明,而成员 函数的定义写在类的定义之后,这种情况比较适合于成员 函数体较大的情况,但这时要求在定义成员函数时,在函 数的名称之前加上其所属性类名及作用域运算符“” 定义成员函数的一般类型为 返回值类型类名::成员函数名(参数说明) 类体} U回
返回 10 3.1 类与对象的定义 在类中直接定义成员函数的情况一般适合于成员函数规 模较小的情况,也就是说它们一般为内联函数,即使没有 明确用inline关键字。 (2)在类的定义体中只写出成员函数的原型说明,而成员 函数的定义写在类的定义之后,这种情况比较适合于成员 函数体较大的情况,但这时要求在定义成员函数时,在函 数的名称之前加上其所属性类名及作用域运算符“ ::” 。 定义成员函数的一般类型为: 返回值类型 类名::成员函数名(参数说明) { 类体 }