我的C++学习之路 --01.类的那些事儿。。。

来源:互联网 发布:手持移动数据终端 编辑:程序博客网 时间:2024/06/05 12:04

01.类的那些事儿


学过C语音的童鞋都知道,在C语言中,当我们想把很多不同类型的变量包装成一个整体使用的时候,我们往往都会使用结构体来解决这个问题。想想当年自个儿刚开始学习结构体的时候,哇!对这玩意儿有种相见恨晚的感觉,是滴,结构体确实帮我们解决了很多淡疼的问题。但是,在C++这个面向对象的编程语言中,因为对象需要具有状态和行为,而C语言的结构体只能描述一个对象的状态,不能描述一个行为。于是乎,在C++中,对结构体进行了扩展,C++的结构体可以包含函数。有于是乎,当把结构体的关键字struct换成class后,类这个概念便产生了。

一、类的概念:(以下内容由百度百科友情赞助。。大笑

在现实世界中,经常有属于同一类的对象。例如,你的自行车只是世界上很多自行车中的一辆。在面向对象软件中,也有很多共享相同特征的不同的对象:矩形、雇用记录、视频剪辑等。可以利用这些对象的相同特征为它们建立一个集合。而这个集合就称为类。类是定义同一类所有对象的变量和方法的蓝图或原型。例如,可以建立一个定义包含当前档位等实例变量的自行车类。这个类也定义和提供了实例方法(变档、刹车)的实现。实例变量的值由类的每个实例提供。因此,当你创建自行车类以后,必须在使用之前对它进行实例化。当创建类的实例时,就建立了这种类型的一个对象,然后系统为类定义的实例变量分配内存。然后可以调用对象的实例方法实现一些功能。相同类的实例共享相同的实例方法。除了实例变量和方法,类也可以定义类变量和类方法。可以从类的实例中或者直接从类中访问类变量和方法。类方法只能操作类变量 - 不必访问实例变量或实例方法。系统在第一次在程序中遇到一个类时为这个类建立它的所有类变量的拷贝 - 这个类的所有实例共享它的类变量。

二、类和结构体的区别:两者除了定义的时候所使用的关键字不同外,更重要的区别是在成员的访问控制方面有区别。

在结构体默认情况下,其成员是公有的,也就是public;

在类的默认情况下,其成员是私有的,也就是private;

  在一个类中,公有成员是可以在类的外部进行访问的,而私有成员只能够在类的外部进行访问。

三、类和对象:

类描述的是一类事物,以及事物所具有的属性。就像度娘上说的一样,自行车是一个类,自行车类中应该会具有 车的生产厂家、车轱辘、脚蹬、座椅、车刹等等。而这个类的对象就是就是万千自行车的一辆(比如说你自己的自行车),不同人的自行车虽然可能都具有上述的那些变量,但是这个变量的值可能是不相同的,比如说你的自行车 是捷安特的、而别人的可能是美利达的,以至于生产过程中使用的那些零配件都可能是不相同的。

四、类的好处:

对象提供了模型化和信息隐藏的好处。类提供了可重用性的好处。自行车制造商一遍一遍地重用相同的蓝图来制造大量的自行车。软件程序员用相同的类,即相同的代码一遍一遍地建立对象。

总结:类是一个抽象的概念,对象是类的一个实例。