Visual_C++面向对象编程教程第2章_C++语言基础_第三次课.pptVIP

  • 11
  • 0
  • 约1.44万字
  • 约 67页
  • 2018-05-18 发布于河南
  • 举报

Visual_C++面向对象编程教程第2章_C++语言基础_第三次课.ppt

Visual_C面向对象编程教程第2章_C语言基础_第三次课

2.4 C++中的类与对象 什么是类: 2.4.3 内联函数 2.6 重载 2.6.1 函数重载 函数重载:指一组功能类似但函数参数类型(个数)不同的函数可以共用一个函数名。 当C++编译器遇到重载函数的调用语句时,它能够根据不同的参数类型或不同的参数个数选择一个合适的函数。 main() { int i=100; coutabs(i)endl; // int型 float f=-125.78F; coutabs(f)endl; // float型 } 例 构造函数的重载。 void main() { Time time1; Time time2(10, 15, 20); time1.showTime(); time2.showTime(); } 2.6.2 运算符重载 运算符重载:指对于不同数据类型的操作数,同一个运算符所代表的运算功能可以不同。 一个运算符定义了一种操作,一个函数也定义了一种操作,其本质是相同的,当程序遇到运算符时会自动调用相应的运算符函数。 虽然重载运算符完成的功能都能够用一个真正的成员函数来实现,但使用运算符重载使程序更易于理解。 与函数重载类似,编译器是根据参加运算的操作数的类型来识别不同的运算。 例: 对于表达式:10+20 编译器把它看成如下函数调用: int operator+(10, 20); 对于表达式:10.0+20.0 编译器把它看成如下函数调用: float operator+(10.0, 20.0); 重载运算符的形式: 重载一个运算符,就是编写一个运算符函数,重载运算符(函数)的原型为: 数据类型 operator运算符(形参表); 2.9 类的继承 继承是面向对象程序设计方法的四个基本特征之一,是程序代码可重用性的具体体现。 在C++面向对象程序设计中,所谓类的继承就是利用现有的类创建一个新的类。新类继承了现有类的属性和行为。 为了使新类具有自己所需的功能,它可以扩充和完善现有类的属性和行为,使之更具体。 微软基础类MFC就是通过类的继承来体现类的可重用性和可扩充性。 在继承关系中,新定义的类称为被继承类的派生类或子类,而被继承的类称为新定义类的基类或父类。派生类继承了基类的所有成员。 一个派生类也可以作为另一个派生类的基类。 派生方式决定了基类的成员在派生类中的访问权限。派生方式共有三种:public、private和protected(缺省值为private)。 虽然派生类继承了基类的所有成员,但为了不破坏基类的封装性,无论采用哪种派生方式,基类的私有成员在派生类中都是不可见的,即不允许在派生类的成员函数中访问基类的私有成员。 采用public派生,基类成员的访问权限在派生类中保持不变,即基类所有的公有或保护成员在派生类中仍为公有或保护成员。public派生最常用。 (1) 可以在派生类的成员函数中访问基类的非私有成员; (2) 可通过派生类的对象直接访问基类的公有成员。 采用private私有派生,基类所有的公有和保护成员在派生类中都成为私有成员,只允许在派生类的成员函数中访问基类的非私有成员。private派生很少使用。 采用protected保护派生,基类所有的公有和保护成员在派生类中都成为保护成员,只允许在派生类的成员函数和该派生类的派生类的成员函数中访问基类的非私有成员。 例 定义类Point,然后定义类Point的派生类Circle。 #include iostream.h class Point // 定义基类,表示点 { private: int x; int y; public: void setPoint(int a, int b) { x=a; y=b; }; // 设置坐标 int getX() { return x; }; // 取得X坐标 int getY() { return y; }; // 取得Y坐标 }; class Circle : public Point // 定义派生类,表示圆 { private: int radius; public: void setRadius(int r) { radius=r; }; // 设置半径 int getRadius() { return ra

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档