1. 什么是类?什么是对象?两者之间什么关系?
类是一类事物的共同特征的抽象描述,它定义这类所有的属性和方法
- 可以理解为模版
- 类本身不占用空间,它只是一种定义,描述了对象一个是什么样子、能做什么
对象是根据类创建的具体实体,它拥有类中定义的属性和方法,并且占用实际的内存空间。
- 可以理解为“模版的具体产物
- 每个对象的属性可以有不同的值,但是都遵循类的类的定义和结构体是行为。
类和对象 的关系:
- 类是对象的抽象,对象是类的实例
- 类是数据类型,对象是变量
- 一个类可以创建多个对象
2. 对象的组成有哪些?类定义的一般格式?
在面向对象编程中,对象由两个部分组成:属性和方法
属性(成员变量)
描述对象的静态特征,即对象锁具有的特征或状态
方法(成员函数)
描述对象的动态行为,即对象能执行的动作或功能
类定义的核心是通过 class
关键字,结合访问控制符,封装属性(成员变量)和方法(成员函数),为创建对象提供模板。
3. 类中成员的访问属性有哪些?分别表示什么意思?
在C++类中,成员(包括成员变量和成员函数)访问属性通过访问访问控制符来定义,用于控制类外成员的访问。共有三种访问属性,分别是公有、私有、和保护。
- public(公有成员)
- 类的公有成员可以被类内部,类外部以及该类的派生类直接访问。
- 用于定义类外暴露“接口”,即允许外部通过对象直接调用的方法或需要公开的属性,是类与外部交互的窗口
- private(私有成员)
- 类的私有成员只能被类内部的成员访问,类外部(包括通过对象直接访问)和派生类都是不能直接进行访问的
- 用于隐藏类内部实现细节,比如核心数据,仅通过公有方法间接操作,确保数据的安全,是封装的核心体现。
- protected(保护成员)
- 类的保护成员可以被类内部和该类的派生类访问,但是类的外部不能直接访问。
- 介于共有和私有之间,主要继承场景,允许子类访问父类的某些成员,同时限制外部的访问。
访问属性 | 类内部 | 类外部 | 派生类 | 用途 |
---|---|---|---|---|
public | 可访问 | 可访问 | 可访问 | 定义对外接口 |
private | 可访问 | 不可访问 | 不可访问 | 隐藏内部数据 |
protected | 可访问 | 不可访问 | 可访问 | 允许子类继承的中间数据 |