资源预览内容
第1页 / 共79页
第2页 / 共79页
第3页 / 共79页
第4页 / 共79页
第5页 / 共79页
第6页 / 共79页
第7页 / 共79页
第8页 / 共79页
第9页 / 共79页
第10页 / 共79页
亲,该文档总共79页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
C+面向对象程序设计,主要内容,类对象类的封装性与信息隐藏构造函数与析构函数类的静态成员基类和派生类虚函数和多态,对象和类,属性: 年龄; 性别; 身高; 体重;动作: 跑; 跳; 说话;,person,面向对象编程的程序基本单位是类 类是数据和操作数据的函数的封装体 类的对象使用自己的方法完成对数据的操作 类可以隐藏数据和操作细节对象通过类接口与外部通信,1.1 类,struct Time int hour; / 0-23 int minute; / 0-59 int second; / 0-59 ;,结构 Vs 类,#include struct Timeint hour;int minute;int sec;,int main( ) Time t1; cint1.hourt1.minute t1.sec; coutt1.hour:t1.minute :t1.sect2.hourt2.minutet2.sec; coutt2.hour:t2.minute :t2.secendl; return 0;,set_time(t1);,set_time(t2);,show_time( t1 );,show_time( t2 );,void set_time(Time& t);,void show_time(Time& t);,结构 Vs 类,#include struct Time int hour; int minute; int sec;void set_time(Time& t) cint.hourt.minutet.sec;void show_time( const Time& t) coutt.hour:t.minute :t.secendl; ,int main( ) Time t1; set_time(t1); show_time(t1); Time t2; set_time(t2); show_time(t2); return 0;,结构 Vs 类,class Time private : 关于时间的数据; public : 读取时间值 ; 调整时间值 ;,类是数据和操作数据的函数的封装,结构 Vs 类,class Time private : int hour; int minute; int second; public : 读取时间值 ; 调整时间值 ;,public : void set( int, int, int) ; void get( );,对象使用自己的方法对数据操作,结构 Vs 类,对象通过类接口与外部通信,class Time private : int hour; int minute; int second; public : 读取时间值 ; 调整时间值 ;,public : void set( int, int, int) ; void get( );,结构 Vs 类,改用含成员函数的类来处理 #include class Time public: void set_time( ); void show_time( ); private: int hour; int minute; int sec;,int main( ) Time t1; t1.set_time( ); t1.show_time( ); Time t2; t2.set_time( ); t2.show_time( ); return 0;,结构 Vs 类,void Timeset_time( ) cinhour; cinminute; cinsec;void Timeshow_time( ) couthour: minute: sechourminutesec; void show_time( ) couthour: minute: secendl; private: int hour; int minute; int sec;,结构 Vs 类,1。类的声明,面向对象编程的基础是把自己的数据类型定义为类,类是用户定义的数据类型。定义一个类后,就可以用类名声明类类型的变量,即将类实例化为不同的对象;C+中用关键字class定义包含数据成员和成员函数的类型。类使程序员可以构造对象的属性和行为或操作。,1。声明类类型,类是一种用户自定义的数据类型,它的一般定义格式如下:class 类名 private:私有数据成员和成员函数; protected:保护数据成员和成员函数; public:公有数据成员和成员函数;;各个成员函数的实现;,1 class Time 2 public:3 void setTime( int, int, int);4 void printMilitary();5 void printStandard();6 private:7 int hour; / 0-238 int minute; / 0-599 int second; / 0-5910 ;,定义类类型,/分号不能忽略!,1。声明类类型,1 class Time 2 public:3 Time( );4 void setTime( int, int, int);5 void printMilitary();6 void printStandard();7 private:8 int hour; / 0-239 int minute; / 0-5910 int second; / 0-5911 ;,1。声明类类型,公有成员成员函数,私有成员数据成员,/成员访问说明符,/成员访问说明符,2。访问控制,private声明的数据和函数不能在类以外访问public声明的数据和函数可以在类以外访问缺省默认为private访问类型的,类,数据和函数,私有,公有,无法从类的外部访问,可以从类的外部访问,数据和函数,2。访问控制,成员访问说明符公有 public: 说明为公有的成员可以被程序中的任何代码访问; 私有 private: 说明为私有的成员只能被类本身的成员函数及友元 类的成员函数访问,默认类的对象的成员是私有; 保护 protected: 除了类本身的成员函数和说明为友元类的成员函数可以访问保护成员外,该类的派生类的成员也可以访问。,class Tdate private: int month; int day; int year; public:void Set(int m, int d, int y ) ;bool IsLeapYear( ); void Print();;,练习:声明日期类,类由成员构成: 数据成员描述对象的属性 成员函数描述对象的方法,3。成员函数,成员函数为描述对象的方法一般定义为公用的类定义中的成员函数被默认创建为内联函数可在类的外部定义成员函数,在类的外部定义成员函数的语法: 返回类型 类名:成员函数名(参数列表) 函数定义体,双冒号称为域名解析分解符,class Tdate public:void Set(int m, int d, int y ) ; bool IsLeapYear(); void Print( ); private: int month; int day; int year;void Tdate:Set(int m, int d, int y ) month = m ; day = d ; year = y ;bool Tdate: IsLeapYear() return ( year%4 = 0 & year%100 != 0 ) |( year%400 = 0); void Tdate: Print() cout year . month . day endl ; ,类的声明,类的实现,在类外定义成员函数,class Tdate public:void Set(int m, int d, int y ) month = m ; day = d ; year = y ; int IsLeapYear() return ( year%4 = 0 & year%100 != 0 ) |( year%400 = 0); void Print() cout year . month . day endl ; private: int month, day,year;,
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号