第十章 对象和类

C++跟C相比最重要的改进就是提供了类,这本书到了第十章终于讲这个了。。。而且还是最基础的基础,可见C++博大精深啊,路漫漫其修远兮,吾只能慢慢一点一点求索啊 


1. 过程性编程和面向对象编程

学习类肯定得知道为什么有类,类是为了面向对象的编程,区别于老一代面向过程的编程。过程性编程就是首先考虑要遵循的步骤,然后考虑如果一步一步表示这些数据。但是实际情况往往不是一步一步来的,一会跳到这一会跳到那,所以就需要更智能的编程思路,这就是基于对象的编程:首先建立描述要操作的对象,然后定义对象之间的操作,这些构成了程序的各种接口,之后用户根据各自接口来完成最后的程序。


这两者之间的区别看起来很容易,但实质上是两种编程思想的区别,所以要在之后的学习中不断体会。


2. 抽象和类

前面说了面向对象编程首先是要建立描述要操作的对象,这一步叫做抽象。抽象是可以描述一个具体的对象,也可以是描述一个操作,也可以说是描述一个问题。C++把各种实际的东西抽象成类,也叫用户定义类型(于内置类型相对应)。


书中举了一个把某人持有的某种股票抽象成类的例子。首先我们得必须记录“某人”,可能是他的全名,ID,地址等,同时也得记录“某种股票”, 包括它的当前价格,某人持有的股票数量等。之后我们得定义一系列操作,包括获得股票,增持,卖出股票,显示股票等等。这样的一个类必须有两个部分组成:

类声明,以数据成员的方式描述数据部分(某人,某种股票),以成员函数(被称为方法)的方式描述共有接口 (接口就是用户或者程序访问或者使用这个类的连接口)

类方法:描述如何实验类成员函数


类用关键字class声明,如上面的股票类可以这样

class Stock {

private:

string someone;

double shares;

...

public:

void acquire(someone, someshares, share_price);

void sale(..)

void show(...)

...

};


一般这样的类声明可以放在一个头文件中,成员函数可以直接写在下面,也可以另开一个cpp文件写。

类声明很像struct,但多了private,public 关键字,也可以包含函数。


声明了一个类,就可以声明一个类的对象,比如男人是一个类,这个类被声明之后,就可以用它来声明一个男人的对象Tom

上述stock类可以这样声明它的对象:

Stock sally;

这样sally.someone就可以是名字,sally.sale(...) 就描述sally.someone卖了股票,以多少钱

private和public关键字描述对类成员的房屋控制。如果是private,表示这是对象的私有成员,外部不能调用修改,而只能通过public下的共有成员来访问或者修改。访问控制还有一个关键字叫protected,十三章会讲


这里涉及到另外一个概念,叫封装,就是将实现细节放在一起并将它们与抽象分开。封装可以是多种方式,比如把数据设为private,比如将方法的实现细节设为private,也可以是把public的方法放在不同的文件中


我们现在在类里面声明了方法,那怎么在类外面或者另外一个文件中描述这个类方法呢,比如上例

void Stock:: sale(...)

{ ...}

注意这里要用::来表示sale方法是Stock类的一个成员。 方法则可以任意类的成员,比如Stock的sale()就可以调用Stock的任何成员变量,不论private与否


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值