追学网

5.1 导学

UPDATE:2015/10/17 | 分类:C++语言视频教程


【导学】

【问题与解决】

  • 问题1:变量和对象可以定义在不同的位置:函数体内、类体内、函数原型参数表内、所有函数和类之外,使用的时候分别有什么不同、访问和共享有什么限制呢?
  1. 不同位置定义的变量和对象,其作用域、可见性、生存期都不同。如果要在不同的程序模块间共享数据,就需要了解变量和对象的作用域、可见性、生存期。
  2. 作用域是指……;可见性是……;生存期是……。
  • 问题2:如何在同一个类的所有对象之间共享数据?比如需要记录一个类的对象总数。
  1. 定义属于整个类而不是对象的数据成员——静态数据成员
  2. 定义用于处理静态数据成员的函数——静态成员函数
  • 问题3:类的私有成员在类外不能直接访问,这是为了保护数据的安全性和隐藏细节。但是需要频繁访问私有数据时,调用接口函数的开销比较大。
  1. 对一些类外的函数、其他的类,给预授权,使之可以访问类的私有成员
  2. 提高了效率,但是带来一些安全隐患,需要权衡、慎用
  • 问题4:共享数据的安全性如何保证
  1. 通过const关键字,限制对共享数据的修改,使共享的数据在被共享时,是只读的。
  • 在编译之前,需要进行预处理,例如包含头文件,选择在不同情况下编译程序的不同部分
  1. 编译预处理
  • 问题5:当程序的规模略大些的时候,就不能将所有代码放在一个文件里了
  1. 多文件结构

【学习建议】

  • 完成练习题和编程作业
  • 编写程序(或者修改例题)观察和验证变量的作用域、可见性、生存期
  • 除了完成作业,希望
  1. 能自己举出一些需要定义静态成员的例子,并编写程序实现
  2. 找出以前的例题、习题,看看可否改写,将一些类的成员函数改为常函数;将一些函数的参数定义为常引用。
  3. 尝试在程序中使用编译预处理命令,并观察效果。

【目录】

5.1  标识符的作用域与可见性

5.2  对象的生存期

5.3  类的静态成员

5.4  类的友元

5.5  共享数据的保护

5.6  多文件结构和编译预处理命令

小结

学习网

世界看中国 娱乐情感文化观点视频