10、类与对象 6).ppt

  1. 1、本文档共44页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
嵌套类域中的名字解析 解析过程 名字使用点之前的嵌套类的成员声明 名字使用点之前的外围类的成员声明 名字使用点之前的全局作用域中的声明 嵌套类域中的名字解析 enum ListStatus { Good ,Empty , Corrupted }; class List { public: //...... private: calss ListItem { 查找:1) ListItem中 2)在List中 3)在全局域中 ListStatus status;//引用全局枚举 }; //...... }; 嵌套类域中的名字解析 enum ListStatus {Good, Empty, Corrupted}; class List { private: class ListItem; //...... public: enum ListStatus {Good, Empty, Corrupted}; //...... }; class List::ListItem { public: ListStatus status; //List::ListStatus }; 嵌套类(nested class) 类体之中而成员函数定义之外的名字解析 嵌套类成员函数体之中的名字解析 内容概要 嵌套类成员函数体之中的名字解析 解析过程 从成员函数局部域中到名字使用点前的声明 嵌套类作用域中 外围类作用域中 成员函数定义之前的名字空间域中出现的声明 嵌套类成员函数体之中的名字解析 class List { public: enum ListStatus {Good,Empty,Corrupted}; //...... }; class List { public: int list; enum ListStatus { Good,Empty,Corrupted }; private: class ListItem; { public: void check_staus(); ListStatus status;//OK }; }; int list = 0; //全局List void List::ListItem::check_status() { int value = list; //哪个list? } 为了访问全局的list必须加:: void List::ListItem::check_status() { int value = ::list; } 本次议题 介绍类的一些特殊技术 指向成员的指针 嵌套类 局部类 局部类 1、概念: 在函数体内定义的类 2、定义: 局部类的数据成员和成员函数必须完全定义在类体内, 因此局部类不允许声明static成员 void foo() { class Bar { public: void fn() { } private: int ival; static int count;//error }; } 局部类 3、局部类和外围函数中元素的互访 局部类中不能使用函数中的变量 void foo() { int iival; class Bar { public: void fn() { iival; //Error } private: int ival; }; } 不能访问外围函数的变量 局部类 外围函数不能访问内部类的非公有成员,可通过类的 对象、指针、引用访问公有成员 ... ... void foo() { int iival; class Bar { public: Bar():ival(100){} void display() { cout ival endl; } private: int ival; }; Bar obj; //cout obj.ival endl; //error obj.display(); //right,只能通过类的对象、引用、指针访问 } int main() { foo(); system(PAUSE); return 0; } 通常将局部类的成员限定为公有的

文档评论(0)

xuefei111 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档