C++类和对象
- 类
类是面向对象程序设计OOP实现消息封装的基础。 类是现实世界在计算机中的反映,它将数据和对这些数据的操作封装在一起, 即具有相同结构,操作,使用约束规则在一起的对象集合在一起,就成为类,类是对对象的抽象。而对象是对类的具体体现。 类的实质是一种引用数据类型,只是这个数据类型比较复杂,类是一个抽象的概念,不能直接操作。只有实例化为对象,才能被操作。这就好比车,车是一个抽象的概念(你难道能开一个逻辑概念的车?),但是红旗轿车跟长安轿车是它的实例化的对象,是可以直接进行操作的
-
类的结构
- 类名
- 数据元素
- 成员函数
//以下是典型的类的结构 class Car { //类名 public : //权限:公有 Car() { } //成员函数 void set(float price, string __name); private ://权限:私有 float price;//数据元素 string __name; };
-
类的特性
-
封装性
将数据和操作封装为一个有机的整体,由于类中私有成员都是隐藏的,只向外部提供有限的接口,所以能够保证内部的高内聚性和与外部的低耦合性。用者不必了解具体的实现细节,而只是要通过外部接口,以特定的访问权限来使用类的成员,能够增强安全性和简化编程。
-
继承性
继承性更符合认知规律,使程序更易于理解,同时节省不必要的重复代码。
-
多态性
同一操作作用于不同对象,可以有不同的解释,产生不同的执行结果。在运行时,可以通过指向父类(基类)的指针,来调用实现子类(派生类)中的方法。
-
- 对象
对象可以是一个变量,可以是一个数据结构,或者一个函数。 在计算机科学中,对象(object),是一个存储器地址,其中拥有值,这个地址可能有标识符指向此处。 在上文中的红旗轿车,长安轿车就可以算是对象。简言之,对象是类的实例,真正的占有内存空间的,实实在在的东西。对象是根据类来创建的。声明类的对象,就跟声明基本类型的变量一样
//基于上面代码的对象
void Car::set(float price, string __name) {
price = 123456.789;
__name = "HongQi";
}
//与基本类型声明变量类比
Car car;//声明类的对象
int i; //基本类型的声明
- 总结
类和对象,简单来说就是逻辑抽象与物理实际的关系,一个是抽象事物,是逻辑上的集合,不能进行操作。一个是物理事物,具有实实在在的内存空间,可以进行操作。以下图片虽然有失偏颇,但是理解类与对象还是可以的。
