招生考试网
学历| 高考 美术高考 考研 自考 成考 专升本 中考 会考 外语| 四六级 职称英语 商务英语 公共英语 日语能力 翻译资格 JTEST
资格| 公务员 报关员 银行从业 司法 导游 教师资格 报关 财会| 会计证 经济师 会计职称 注册会计 税务师 资产评估 审计师
工程| 一建 二建 造价师 造价员 咨询师 监理师 安全师 医学| 卫生资格 执业医师 执业药师 执业护士 | 教案 论文 文档
IT类| 计算机等级 计算机软考 职称计算机 高校计算机 推荐-国家公务员 事业单位招聘 军校国防生 自主招生 艺术特长生 招飞
 3773考试网 - 计算机等级考试 - 考试辅导 - 计算机二级 - 正文

2014计算机二级C++考点知识分析:类和对象

来源:2exam.com 2014-4-9 23:19:49

 

6.7 常成员 

  虽然数据隐藏保证了数据的安全性,但各种形式的数据共享却又不同程度地破坏了数据的安全性。因此,对于既需要共享又需要防止改变的数据应该定义为常量进行保护,以保证它在整个程序运行期间是不可改变的。这些常量需要使用const修饰符进行定义。const关键字不仅可以修饰类对象本身,也可以修饰类对象的成员函数和数据成员,分别称为常对象、常成员函数和常数据成员。 

  1常对象 

  使用const关键字修饰的对象称为常对象,它的定义格式如下: 

  <类名>const<对象名>  或  const<类名><对象名> 

  常对象在定义时必须进行初始化,而且不能被更新。 

  2常成员函数 

  使用const关键字说明的成员函数称为常成员函数,常成员函数的说明格式如下: 

  <返回类型><成员函数名>(<参数表>)const; 

  3常数据成员 

  使用const说明的数据成员称为常数据成员。常数据成员的定义与一般常量的定义方式相同,只是它的定义必须出现在类体中。 

  常数据成员同样也必须进行初始化,并且不能被更新。但常数据成员的初始化只能通过构造函数的成员初始化列表进行。 

  常数据成员的初始化只能在成员初始化列表中进行,但对于大多数数据成员而言,既可以使用成员初始化列表的方式,也可以使用赋值,即在构造函数体中使用赋值语句将表达式的值赋值给数据成员。这两种方式中,成员初始化列表方式使初始化情况更加明显,并且可能带来效率上的优势。 

  6.8 友元 

  类具有数据封装和隐藏的特性,只有类的成员函数才能访问类的私有成员,外部函数只能访问类的公有成员。但在某些情况下,需要在类的外部访问类的私有成员。这时,如果通过公有成员函数进行访问,由于参数传递、类型检查和安全性检查等需要时间上的开销,将影响程序的运行效率。为了解决整个问题,引入了友元。友元可以在类外部直接访问类的私有成员,提高了程序的运行效率。 

  友元提供了不同类或对象的成员函数之间、类的成员函数与一般函数之间进行数据共享的机制。对于一个类,可以利用friend关键字将一般函数、其他类的成员函数或者是其他类声明为该类的友元,使得这个类中本来隐藏的信息(包括私有成员和保护成员)可以被友元所访问。如果友元是一般成员函数或是类的成员函数,称为友元函数;如果友元是一个类,则称为友元类,友元类的所有成员函数都成为友元函数。 

  1友元函数 

  友元函数不是当前类的成员函数,而是独立于当前类的外部函数(包括普通函数和其他类的成员函数),但它可以访问该类的所有对象的成员,包括私有成员、保护成员和公有成员。 

  友元函数要在类定义时声明,声明时要在其函数名前加上关键字friend。该声明可以放在公有部分,也可以放在私有部分。友元函数的定主既可以在类内部进行,也可以在类外部进行。 

  2友元类 

  友元除了可以是函数外,还可以是类,即一个类可以作为另一个类的友元,称为友元类。友元类的所有成员函数都是另一个类的友元函数,都可以访问另一个类中的隐藏信息(包括私有成员和保护成员)。 

  友元类可以在另一个类的公有部分或私有部分进行说明,说明方法如下: 

  friend<类名>;//友元类类名


  • 上一个文章:
  • 网站版权与免责声明
    ①由于各方面情况的不断调整与变化,本网所提供的相关信息请以权威部门公布的正式信息为准.
    ②本网转载的文/图等稿件出于非商业性目的,如转载稿涉及版权及个人隐私等问题,请在两周内邮件fjksw@163.com联系.
    最新文章
    推荐文章
  • 此栏目下没有推荐文章


  • | 关于我们 | 联系我们 | 版权申明 | 网站导航 |
    琼ICP备12003406号