作者:teeyohuang
本文系原创,供交流学习使用,转载请注明出处,谢谢
C++随记(十)--类与对象(1)
类是C++中实现OOP的基础,C++相较于C来说最重要的应该就是增设了类这一概念吧。所谓面向对象的编程,其实可以理解面向类的编程。二者的关系:在C++中,对象的数据类型称为—类(class).类是对象的抽象,而对象是类的具体。
1. 类的声明:
Class 类名
{
private:
私有的数据成员和成员函数;
public:
公有的数据成员和成员函数;
};
2. 访问控制:
可以看到类声明中出现了两个关键字:public和private,称为成员访问限定符,他们描述了对类成员的访问控制。
public顾名思义,公用的,就是说可以被类中的成员函数访问,也可以被类外的函数访问;
private私有的,就是说只能被我本类中的公用成员函数(友元函数也可以,后面会讲)访问。
因此,公用成员函数是 程序 和 对象的私有成员 之间的桥梁,提供了程序和对象之间的接口。
还有第三个访问限定符:protected。用protected声明的成员被称为 受保护的成员,它不能被类外访问但是被派生类的成员函数访问(派生类暂时先不提)。
在一个类体中,不一定都包含关键字private和public,如果不写,就默认是private。
3. 定义对象的方法(和结构体很类似)
①先声明类 的类型,再定义对象
如:假设之前有声明了class Country;Country这个类
然后定义对象:Country US, UK;
②声明类的同时定义对象:
class Country
{
private:
…
public:
…
} US,UK;
③不声明类的名字,直接定义对象,就是把②中的Country直接省去就行,但不常用这种方法。在入门阶段个人推荐①
4. 成员函数
成员函数与常规函数定义相似,也有函数头和函数体,也可以有返回类型和参数,区别只是它属于一个类的成员,出现在类体中。使用成员函数时要注意它的权限和作用域。公有成员函数可以被类外调用,而私有的成员函数只能被其他的本类成员函数调用。成员函数可以访问本类的任何成员。
成员函数的定义:
①可以在类声明的时候直接在类体中定义,这个很简单就不赘述了。
②也可以在类外定义,在类体外定义的时候,要加作用限定符(作用域解析运算符)!---::就是两个冒号 前面加上你的类名,它表示你这个函数是属于哪个类的。
5. 对象成员的引用
访问某个对象的成员,一般可以通过三种方式:
①通过对象名和成员名进行访问,这种方法较为常见
对象名.成员名
②通过指向对象的指针访问
假设有对象US和它的成员area,设有指针 Country *p;
P = & US;
那么US.area 和 p->area 和(*p).area三者是等价的
③通过对象的引用变量来访问其中的成员
这个也很简单就不赘述了