2015C++面向对象设计(中)讲稿.ppt

C ++ 面向对象程序设计教程(中) C++ Object-Oriented Programming Design Course 黑龙江大学 王欣 (第三版) 2015年9月 第三章 类 Chapter 3 Class 第四章 派生类与继承 Chapter 4 Derived Class Inheritance 第三章 类 Chapter 3 Class 3.1加上行为的结构体-----类 类和结构体十分类似,只是比结构体多了许多函 数定义而已。 以往使用C++结构体类型struct定义的成员内容都 是数据变量,如果把struct扩充为可以定义这些数据的 行为,就是类(class)。所谓行为,就是可以处理类中数 据的函数。故一个类主要包含数据成员(data member) 和函数成员(function member )。这种将数据和函数 放在一起的操作就成为封装(Encapsu-lation)。 class 类名 { member-list; }[declarators]; 注意;一定要有“;” class Student{ int sum(); //函数成员 float average(); //函数成员 long id; //数据成员 char name[8]; //数据成员 int chinese; //数据成员 }JACK; 在定义完类的数据后,便可以利用Student来定义产 生其对象,定义方法和一般以结构体定义变量的方法 相同,也有两种方法。一般是直接写在类定义之后, 如JACK对象;另外一种是以类名称Student来定义。 撰写成员函数的语法如下: 返回值类型 所属类名称::函数名称 { [函数主体]; } 成员函数的写法和一般函数的写法类似,只是在函 数名称前加上类名称和双冒号(::)[作用域运算符]而已。 如:void main() { Student jack,steven; Student classA[50]; } 用类的概念写程序:在屏幕上输出一个由星号形成的三角形 void Dodraw(int i); //指引 void main() { int num=5; Dodraw(num); } void Dodraw(int i) { for (int j=1;j=i;j++) { for(int k=1;k=j;k++) cout*; coutendl; } } class CDrawArray { public: void DoDraw(int num); }; void CDrawArray::DoDraw(int num) {for (int j=1;j=num;j++) { for(int k=1;k=j;k++) cout*; coutendl;} } void main() {int num=5; CDrawArray myDraw; myDraw.DoDraw(num); } 3.1.1函数的定义 class cpoint{ private: int x,y; public: void setpoint(int a,int b) //函数的定义直接写到类 {x=a;y=b;} //内部,隐式定义 int gext() {return x;} }; (1)隐式定义 (2)显式定义 函数如果写到类的外部,则定义变为显示定义。 class cpoint{ private: int x,y; public: void setpoint(int ,int ); int get(); }; void cpoint:: setpoint(int a,int b) {x=a;y=b;} int cpoint:: get() {return x;} C++把类的变量称为类的对象,对象也称为类的实例。 3.2 对象的定义及使用 声明了类之后,定义的格式与一般变量的定义格式相同。 cpoint a1,a2; class cpoint{ private: int x,y; public: void setpoint(int a ,int b ) { x=a;y=b; } int getx() {return x;}

文档评论(0)

1亿VIP精品文档

相关文档