「C/C++」C++ 三大特性 之 类和对象
✨博客主页 | ||
---|---|---|
何曾参静谧的博客 | ||
📌文章专栏 | ||
「C/C++」C/C++程序设计 | ||
📚全部专栏 | ||
「VS」Visual Studio | 「C/C++」C/C++程序设计 | 「UG/NX」BlockUI集合 |
「Win」Windows程序设计 | 「DSA」数据结构与算法 | 「UG/NX」NX二次开发 |
「QT」QT5程序设计 | 「File」数据文件格式 | 「PK」Parasolid函数说明 |
目录
- C++ 类与对象详解
- 1. 类的定义
- 示例:定义一个简单的类
- 2. 对象的创建
- 3. 构造函数和析构函数
- 4. 访问控制
- 5. 继承
- 总结
C++ 类与对象详解
C++ 是一种强大的面向对象编程语言,它支持类(Class)和对象(Object)的概念,这是面向对象编程(OOP)的核心。类是一种用户定义的数据类型,它允许我们将数据和操作数据的函数(也称为成员函数)封装在一起。对象是类的实例,通过对象我们可以访问类的成员变量和成员函数。本文将详细介绍C++中的类和对象,包括类的定义、对象的创建、构造函数和析构函数、访问控制以及继承等关键概念。
1. 类的定义
在C++中,类是通过关键字class
来定义的。类定义了一个对象的蓝图,描述了对象的属性和行为。类的基本结构如下:
class ClassName {
public:
// 公有成员(变量和函数)
protected:
// 保护成员(变量和函数)
private:
// 私有成员(变量和函数)
};
- 公有成员(public):可以被类的外部访问。
- 保护成员(protected):只能被类本身及其派生类访问。
- 私有成员(private):只能被类本身访问,外部无法直接访问。
示例:定义一个简单的类
class Rectangle {
public:
// 构造函数
Rectangle(double w, double h) : width(w), height(h) {}
// 获取面积
double getArea() const {
return width * height;
}
// 设置宽度
void setWidth(double w) {
width = w;
}
// 设置高度
void setHeight(double h) {
height = h;
}
private:
double width; // 宽度
double height; // 高度
};
2. 对象的创建
类定义完成后,我们需要创建对象来使用它。对象的创建是通过类名后跟一对圆括号来实现的,圆括号中可以包含传递给构造函数的参数。
int main() {
// 创建 Rectangle 对象
Rectangle rect(5.0, 3.0);
// 使用对象的方法
double area = rect.getArea();
std::cout << "Area: " << area << std::endl;
// 修改对象的属性
rect.setWidth(10.0);
rect.setHeight(4.0);
area = rect.getArea();
std::cout << "New Area: " << area << std::endl;
return 0;
}
3. 构造函数和析构函数
- 构造函数:特殊的成员函数,用于在创建对象时初始化对象。构造函数的名字与类名相同,没有返回类型。
- 析构函数:特殊的成员函数,用于在对象生命周期结束时进行清理工作。析构函数的名字是类名前加波浪号(
~
),没有返回类型和参数。
class MyClass {
public:
// 构造函数
MyClass() {
std::cout << "Constructor called" << std::endl;
}
// 析构函数
~MyClass() {
std::cout << "Destructor called" << std::endl;
}
};
int main() {
MyClass obj1; // 调用构造函数
{
MyClass obj2; // 局部对象,离开作用域时调用析构函数
}
std::cout << "After local object destruction" << std::endl;
return 0; // main 函数结束时,obj1 的析构函数被调用
}
4. 访问控制
类的成员可以有不同的访问权限,包括公有(public)、保护(protected)和私有(private)。这些访问权限决定了成员在类的外部和派生类中的可见性。
- 公有成员:可以在任何地方访问。
- 保护成员:只能在类内部和派生类中访问。
- 私有成员:只能在类内部访问。
5. 继承
继承是面向对象编程的一个重要特性,它允许我们创建一个新的类(派生类)来继承另一个类(基类)的属性和方法。
class BaseClass {
public:
void display() {
std::cout << "Display from BaseClass" << std::endl;
}
};
class DerivedClass : public BaseClass {
public:
void show() {
std::cout << "Show from DerivedClass" << std::endl;
}
};
int main() {
DerivedClass obj;
obj.display(); // 调用基类的成员函数
obj.show(); // 调用派生类的成员函数
return 0;
}
总结
C++ 中的类和对象是面向对象编程的基础。通过定义类,我们可以封装数据和行为,并通过对象来操作这些数据。构造函数和析构函数分别用于对象的初始化和清理。访问控制机制(公有、保护和私有)确保了类的封装性和安全性。继承机制则允许我们创建新的类来扩展现有类的功能。掌握这些概念对于深入理解C++的面向对象编程至关重要。