1. C++类与对象基础概念
在C++编程语言中,类(class)是面向对象编程的核心概念。与C语言中的结构体(struct)相比,类提供了更完善的功能和更丰富的特性。类不仅能够封装数据,还能封装操作数据的方法,实现了数据和行为的统一管理。
提示:理解类与对象的关系就像理解建筑图纸和实际建筑的关系。类相当于图纸,定义了结构和功能;对象则是根据图纸建造出来的具体建筑。
1.1 类与结构体的本质区别
虽然C++中的class和struct在语法上非常相似,但它们存在几个关键差异:
-
默认访问权限:
- class成员默认是private的
- struct成员默认是public的
-
继承特性:
- class支持面向对象的所有继承特性
- struct主要用于数据封装
-
使用场景:
- class更适合实现复杂的对象模型
- struct更适合简单的数据聚合
cpp复制// class示例
class Student {
string name; // 默认private
int age;
public:
void display() {
cout << name << ", " << age;
}
};
// struct示例
struct Point {
int x; // 默认public
int y;
};
2. 类的定义与实现
2.1 类的定义方式
在C++中定义类有两种主要方式:
- 声明和定义全部放在类体中:
- 简洁直观
- 成员函数可能被编译器当作内联函数处理
- 适合小型类或简单的成员函数
cpp复制class Circle {
double radius = 1.0;
public:
double area() {
return 3.14159 * radius * radius;
}
};
- 声明与实现分离:
- 类声明放在.h头文件中
- 成员函数实现放在.cpp源文件中
- 需要使用类名和作用域解析运算符(::)
c复制
