(一)面向对象的思想
(二)类的认识
- 类是一组相关的属性(变量)和行为(方法)的集合。是一个抽象概念设计的产物;
- 对象是该类事物的具体表现形式。现实世界存在对应的实体;
- 成员变量是对象的属性(变量、指针、数组等),属性的值确定对象的状态;
- 成员函数是对象的方法,确定对象的行为;
- 变量的值确定了对象的状态;
- 通过对象的方法可以改变对象的状态;
(三)类的设计
在C++中类是一种数据类型;
class 类名 //类 头
{
public: //公有
private: //私有
protected: //保护
};
注意:
- 类是一种数据类型,在设计时,不分配存储空间,所以不能对数据成员初始化。类中的属性也不能使用关键字extern、auto、register等限定其存储类型;
- 类中默认权限private(私有),其中类的权限体现封装性;
(四)C++对象模型
通过同一个类实例化的对象,这些对象只有属性的值不同,每个对象的成员方法都是相同的。所以同一类的对象,每个对象分配单独的数据区,成员方法存放在代码区为每个对象共用。
下面我们设计人类进行举例:
#include <iostream>
using namespace std;
class Person
{
public:
Person();
~person();
int GetAge();
char* GetName();
...
private:
char* name;
int age;
};
int main()
{
Person s1,s2,s3;
return 0;
}
对象模型如下:
(五)总结
- 有空间,不一定有对象
- 有对象,一定有空间(空类型的对象占用1字节的大小)
- 类也遵守结构体内存对齐的规则
下节:讲解C++对象模型的实现方式(this指针实现)