第七章 访问控制和封装

a.访问说明符:public和private。public:在整个程序内可以被访问,定义类的接口;private:可以被类的成员函数访问,不能被使用该类的代码访问,封装(隐藏)了类实现的细节。

b.关键字:class和struct。struct默认是public的;class默认是private的。

c.友元:允许其他类或者函数访问它的非公有成员。加关键字friend声明函数,只能在类内部声明,友元的声明仅仅指定了访问的权限,并不是通常意义的声明,还应该专门对函数进行一次声明。友元没有传递性,每个类负责控制自己的友元类或友元函数。

d.在类中定义某种类型的别名:typedef std::string::size_type pos;可以是public,也可以是private的。作用:可以通过pos隐藏(真正的数据类型)实现的细节

e.内联函数:规模较小的函数。cout<<func(a,b)<<endl;    cout<<(a.size()<b.size()?a:b)<<endl避免函数调用的开销关键字:inline。定义在类内部的成员函数自动是inline的。

f.可变数据成员:修改类的数据成员,即使是该对象是const的。关键字mutable

g.类的特性:类型成员、类的成员的类内初始值、可变数据成员、内联成员函数、从成员函数返回*this、关于如何定义并使用类类型及友元类。                如果我们定义的返回类型不是引用(Screen而非Screen&(左值)),则返回值将是*this的副本,调用时只能改变副本。

左值:表示存储在计算机内存的对象,可寻址,相当于地址值

右值:代表的为真实值,可读,即数据值

h.一个const成员函数以引用形式返回*this,它的返回类型将是常量引用。非常量版本的函数对于常量对象是不可用的,所以我们只能在一个常量对象上调用const成员函数;非常量对象可以调用常量版本多非常量版本函数

i.将另一个类的成员函数作为友元,要注意程序的组织结构和声明和定义的依赖关系

j.函数外定义的函数的返回类型,如果该类型是定义在类中的,则必须指定该类。

k.名字的查找与类的作用域:1.先处理类中的全部声明,再处理成员函数的定义;2.首先,在函数内查找该名字的声明,然后在整个类中查找,最后在类外该函数之前的作用域内查找。

在不同的作用域使用同一个名字的时候,要注意使用的是哪个作用域中的对象。




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值