(一)面向对象的思想

在这里插入图片描述


(二)类的认识

  • 类是一组相关的属性(变量)和行为(方法)的集合。是一个抽象概念设计的产物;
  • 对象是该类事物的具体表现形式。现实世界存在对应的实体;
  • 成员变量是对象的属性(变量、指针、数组等),属性的值确定对象的状态;
  • 成员函数是对象的方法,确定对象的行为;
  • 变量的值确定了对象的状态;
  • 通过对象的方法可以改变对象的状态;

(三)类的设计

在C++中类是一种数据类型;

1
2
3
4
5
6
7
8
9
class 类名		//类 头
{
public: //公有

private: //私有

protected: //保护

};

注意:

  • 类是一种数据类型,在设计时,不分配存储空间,所以不能对数据成员初始化。类中的属性也不能使用关键字extern、auto、register等限定其存储类型;
  • 类中默认权限private(私有),其中类的权限体现封装性;

(四)C++对象模型

通过同一个类实例化的对象,这些对象只有属性的值不同,每个对象的成员方法都是相同的。所以同一类的对象,每个对象分配单独的数据区,成员方法存放在代码区为每个对象共用。

下面我们设计人类进行举例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#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指针实现)