一、类与对象的基本概念
- 类:可以理解为一个'模板'或'蓝图',用来定义对象的属性(数据)和行为(函数)。比如'学生'类,就包含姓名、学号(属性)和上课、考试(行为)。
- 对象:类的实例化产物,是具体存在的个体。比如'张三'就是'学生'类的一个对象,每个对象都有自己独有的属性值,同时共享类的行为。
- 核心关系:类是对象的抽象,对象是类的具体实现。
二、类的定义与对象的创建
1. 类的定义格式
class 类名 {
public:
数据成员类型 数据成员名;
成员函数返回值类型 成员函数名 (参数列表) {
函数体
}
private:
数据成员类型 数据成员名;
protected:
数据成员类型 数据成员名;
};
2. 对象的创建方式
- 直接定义:
类名 对象名;,如 Student zhangsan;,生命周期随作用域结束。
- 用 new:
类名 *对象指针 = new 类名;,如 Student *lisi = new Student;,需手动用 delete 释放内存,否则内存泄漏。
三、类的成员(数据成员 + 成员函数)
1. 数据成员
- 类的'属性',如 Student 类的 name(字符串)、id(int)、score(float)。
- 可以在定义时初始化(C++11 及以上支持):
string name = "未知";。
- 注意:全局对象、静态对象的默认初始化是 0 值,局部对象的默认初始化是随机值,建议显式初始化。
2. 成员函数
- 类的'行为',用来操作数据成员,如 setName(string n)、getScore()。
- 两种实现方式:
- 类内实现:直接在类中写函数体,编译器会默认视为内联函数(inline),适合简单函数。
- 类外实现:类中只声明函数,类外写函数体,格式为
返回值类型 类名::成员函数名 (参数列表) { 函数体 }。
class Student {
public:
void setScore(float s);
};
void Student::setScore(float s) {
score = s;
}