类和对象

类规范由两个部分组成:

  • 类声明:以数据成员的方式描述数据部分,以成员函数(被称为方法)的方式描述公有接口。
  • 类方法定义:描述如何实现类成员函数。
简单的说,类声明提供了类的蓝图,而方法定义则提供了细节。



通常,C++程序员将接口(类定义)放在头文件中,并将实现(类方法的代码)放在源代码文件中。

1 访问控制

关键字private和public描述了对类成员的访问控制。使用类对象的程序都可以直接访问公用部分,但只能通过公用成员函数(或友元函数)来访问对象的私有成员。因此,公用成员函数是程序和对象的私有成员之间的桥梁,提供了对象和程序之间的接口。防止程序直接访问数据被称为数据隐藏。

2 控制对成员的访问:公有还是私有

无论类成员是数据成员还是成员函数,都可以在类的公有部分或私有部分中声明它。但由于隐藏数据是oop主要的目标之一,因此数据项通常放在私有部分,组成类接口的成员函数放在公用部分;否则,就无法从程序中调用这些函数。也可以将成员函数放在私有部分,这样不能直接从程序中调用这种函数,但公用方法却可以使用它们。通常,程序员使用私有成员函数处理不属于公有接口的实现细节。

不必在类声明中使用关键字private,因此这是类对象的默认访问控制:

3 实现类成员函数

还需要创建类描述的第二部分:为那些由类声明中的原型不是的成员函数提供代码。成员函数定义与常规函数定义非常相似,它们有函数头和函数体,也可以有返回类型和参数。都是它们还有两个特性的特征:
1)定义成员函数时,使用作用域解析运算符(::)来标识函数所属的类;
2)类方法可以访问类的private组件。

4 内联函数

其定义位于类声明中的函数都将自动称为内联函数。
如果愿意,也可以在类声明之外定义成员函数,并使其成为内联函数。为此,只需在类实现部分中定义函数时使用inline限定符即可:
class Stock
{
  private:
    ......
    void set_tot();
  public:
     .......
};

inline void Stock::set_tot()
{
    total_val=shares*share_val;
}

内联函数的特殊规则要求在每个使用它们的文件中都对其进行定义。确保内联定义对多文件程序中的所有文件都可用的、最简便的方法是:将内联定义放在定义类的头文件中。
根据改写规则,在类声明中定义方法等同于用原型函数替换方法定义,然后再类声明的后面将定义改写为内联函数。也就是加上inline。

所创建的每个新对象都有自己的存储空间,用于存储其内部变量和类成员。但同一个类的所有对象共享同一组类方法,即每种方法只有一个副本。

类的设计步骤小结:



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值