简述
在C语言的基础上,C++增加了面对对象编程。
在下文中,暂且认为类是一个箱子,而对象则是各种形状的箱子。
很容易发现,类是对象的集合。
类是C++的核心特性,可以认为是一种用户定义的数据类型。
对象根据类来创建。
声明类的对象,就像声明基本类型的变量。
对象的两大核心要素:属性与行为。
箱子有长度,宽度和高度等等。这些是属性。
而箱子可以完成一系列行为,比如装东西等等。这些是行为。
行为是建立在对象具有诸多属性的基础上。
在C++中,属性是对象的一系列数据,而行为则是函数。
我们通过调用成员函数来操作与该对象相关的数据。
可能此刻的你很困惑,没关系,结合下面的讲解进行理解。
本文代码
类的定义
同样以箱子为类进行研究。
我们可以看到,类的主体包含了变量和函数。
而函数只是声明了而已,并未定义。
我们暂且知道类可以这样定义即可。
成员函数的两种定义方式
第一种 成员函数定义在类定义的内部
第二种 成员函数定义在类定义的外部
此时需要使用范围解析运算符定义该函数
对象成员的访问
成员访问运算符是一个英文的句号,也就是一个点号。
通过成员访问运算符可以访问类的对象的成员。
这一点类似于结构体对成员变量的访问。
类访问修饰符
数据封装是面对对象编程的一个重要特点,防止函数直接访问类的内部成员。
关键字public,private,protected称为访问修饰符。
一个类可以有多个public,private或protected的标记区域。
类成员的默认访问修饰符是private。
公有(public)成员
在类的外部,我们可以访问公有成员,而不需要使用任何成员函数来设置和获取公有变量的值。
私有(private)成员
私有成员变量或私有成员函数在类的外部是不可以被访问的。
实际操作中,我们一般会在私有区域定义数据,在公有区域声明或定义函数,以便在类的外部也可以使用成员函数。
受保护(protected)成员
受保护的成员变量或成员函数与私有成员的变量或函数十分相似
但是,受保护的成员在派生类中是可以被访问的
派生类是子类,暂且知道这么多,后面会细说
阅读下面的代码,也许你会有所了解
继承
继承的方式有public,private,protected三种
基类成员的访问属性会决定派生类对其的访问属性
可以理解为访问权限 public > protected > private
我们始终需要记住的是:
private 成员只能被基类成员和友元访问,不能被派生类访问
protect成员可以被派生类访问