.ruc.2010@ 类数据成员和类成员函数 类成员:成员属于类本身,而不属于类的某个对象 对象成员或实例成员:属于对象的成员。前面讲过的都是对象成员 使用关键字static可以创建一个类成员。 类数据成员 声明静态成员的语法: 类数据成员 Task类的数据成员n与Task类本身相关,与任何Task对象无关。 由于n是static的,它对整个Task类而言只有一个,而不是每个Task对象都有一个n。 可以利用n来确定当前存在的Task对象的数量 类数据成员 类成员与对象成员示例: 类数据成员 类数据成员 static数据成员不会影响该类及其对象的sizeof。如下例中表达式sizeof(C) 和sizeof(c1)的值都是16。 类成员函数 除了static数据成员,类还可以有static成员函数。 类成员函数 静态成员函数只能访问其他的static成员,包括数据成员和成员函数。而非静态成员函数既可以访问static成员,也可以访问非静态成员。 static成员函数既可以是inline函数,也可以是非inline函数。 类成员函数 访问static数据成员和static成员函数的方式: 通过对象来访问 直接通过类来访问(推荐) 在成员函数内定义静态变量 成员函数内的局部变量可以是static的。如果将成员函数内的某个局部变量定义为静态变量,该类的所有对象在调用这个成员函数时将共享这个变量。 在成员函数内定义静态变量 上例中,在成员函数m中定义了一个static变量s,由于s定义在程序块内,它拥有程序块范围,因此它只能在m内部访问。换句话说,该变量只有在函数内部才有效。每调用m一次,s就会相应地增加一次。 又因为m是C的成员函数,所以,C的所有对象都共享这个静态局部变量。这样,不同对象对m的每一次调用访问的都是同一个s。 相反,对于非静态局部变量x来说,每个C对象都拥有一个x。 指向对象的指针 对象或对象引用使用成员选择操作符.来访问对象的成员。 要通过指针来访问成员,必须使用指针操作符- 在C++中,指向对象的指针主要用于两个方面: 指向对象的指针可以作为参数传递给函数,或通过函数返回 使用操作符new和new[]动态创建对象,然后返回一个指向该对象的指针。 指向对象的指针 常量指针this this是一个关键字 this指针只能出现在类的非静态成员函数中。 它指向调用该成员函数的那个对象。静态成员函数中不能出现this指针。 this指针不是对象的一部分,所以不影响对象的大小 常量指针this 当一个非静态成员函数被某对象调用时,编译器将该对象的地址作为一个隐含的参数传给该成员函数, 例如,下边的函数调用: myDate.setMonth( 3 ); 可以看作: setMonth( myDate, 3 ); 在成员函数内部,可以通过this指针来获取对象的地址 常量指针this 大多数情况下,this指针都是隐含使用的。 但也可以显式地使用this指针来调用类的成员。例如: void Date::setMonth( int mn ) { month = mn; this-month = mn; (*this).month = mn; } 上述三条语句是等价的。 常量指针this this指针通常用来从成员函数中返回当前对象。 return *this; this指针有时也用来避免自引用 if (Object != this) 常量指针this this指针是一个常量,它不能作为赋值、递增、递减等运算的目标对象。此外this只在非static成员函数中用才有效 常量指针this 与普通函数相比,静态成员函数由于不与任何的对象相联系,因此它不具有this指针。 由于没有this指针的额外开销,因此静态成员函数与类的全局函数相比速度上会有少许的增长 上机作业: P126: 3-10, 3-22; 3-23 第4章 继承 概述 C++允许从任何已存在的类派生新类,所派生的类被称为派生类(derived class),又称为子类。而已存在的用于派生新类的类被称为基类(base class),又称为父类。 在C++中,一个派生类既可以从一个基类派生,也可以从多个基类派生。 从一个基类派生类的继承被称为单继承。 从多个基类派生类的继承被称为多继承。 C++中,继承的语法 单继承语法: class 派生类名 : 访问控制 基类名 { 数据成员和成员函数声明 }; C++中,继承的语法 多继承语法: class 派生类名 : 访问控制 基类名1,
您可能关注的文档
- 124711_广告插图幻灯片.ppt
- 20133688tt宽带装维人员技能培训-宽带故障处理流程幻灯片.ppt
- 20140327金色LOFT个案分析不完全版幻灯片.ppt
- 20140606高考考务培训幻灯片.ppt
- A05 ReadyNAS 竞争分析幻灯片.ppt
- Access_15过程调用与参数传递幻灯片.ppt
- Access关系数据库简介幻灯片.ppt
- ACCESS实例教程(查询)幻灯片.ppt
- access数据库基础知识幻灯片.ppt
- ACS业务介绍幻灯片.ppt
- 小区绿化施工协议书.docx
- 墙面施工协议书.docx
- 1 古诗二首(课件)--2025-2026学年统编版语文二年级下册.pptx
- (2026春新版)部编版八年级道德与法治下册《3.1《公民基本权利》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《4.3《依法履行义务》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《6.2《按劳分配为主体、多种分配方式并存》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《6.1《公有制为主体、多种所有制经济共同发展》PPT课件.pptx
- 初三教学管理交流发言稿.docx
- 小学生课外阅读总结.docx
- 餐饮门店夜经济运营的社会责任报告(夜间贡献)撰写流程试题库及答案.doc
原创力文档

文档评论(0)