C++:类和对象
本文介绍C++中的面向对象基础概念——类和对象。
类:定义抽象的模板
类是面向对象编程的核心概念之一,可以看作是一个抽象的模板,描述了一类对象的通用属性和行为。在C++中,类由成员变量(数据成员)和成员函数(成员方法)组成。类的定义如下:
#include <iostream> class Car { public: // 成员变量 std::string brand; int year; // 成员函数 void a() { std::cout << "Brand: " << brand << ", Year: " << year << std::endl; } };
在这个例子中,Car类包含了两个成员变量:brand(品牌)和 year(生产年份),以及一个成员函数 a用于显示汽车信息。
对象:实例化类的具体实体
类只是一个抽象的模板,而对象则是类的具体实例。在C++中,通过类定义对象的方式如下:
int main() { // 创建 Car 类的对象 Car myCar; // 设置对象的属性 myCar.brand = "Toyota"; myCar.year = 2022; // 调用对象的成员函数 myCar.a(); return 0; }
在这个例子中,通过 Car类定义了一个名为 myCar的对象。然后,通过设置对象的属性和调用对象的成员函数,我们可以操作这个对象。
封装:将数据和方法组合成一个单元
封装是OOP的一个原则,它将数据和方法组合成一个单元,防止外部直接访问对象的内部实现细节。在上面的例子中,brand和 year 是Car类的私有成员,可以通过公有成员函数进行访问。
class Car { private: std::string brand; int year; public: // 公有成员函数 void setInfo(std::string b, int y) { brand = b; year = y; } void a() { std::cout << "Brand: " << brand << ", Year: " << year << std::endl; } };
通过将成员变量定义为私有,我们可以使用公有成员函数来设置和获取这些私有成员变量的值,从而实现了封装。
构造函数和析构函数:对象的创建和销毁
构造函数是在对象创建时调用的特殊成员函数,用于初始化对象的状态。在C++中,构造函数与类同名,没有返回类型。eg:
class Car { public: // 构造函数 Car() { std::cout << "Car object is created." << std::endl; } // 其他成员函数 };
析构函数是在对象销毁时调用的特殊成员函数,用于清理对象分配的资源。与构造函数类似,析构函数与类同名,前面加上波浪号(~)。eg:
class Car { public: // 构造函数 Car() { std::cout << "Car object is created." << std::endl; } // 析构函数 ~Car() { std::cout << "Car object is destroyed." << std::endl; } // 其他成员函数 };
注意事项:
1.封装原则: 尽量将类的成员变量定义为私有,通过公有成员函数进行访问,以实现封装。
2.构造函数和析构函数: 构造函数用于初始化对象,析构函数用于清理对象。它们是对象生命周期管理的关键。
3.命名规范: 类名采用驼峰命名法,表示一种规范,提高代码的可读性。
驼峰命名法
一种常用的命名规范,主要应用于编程语言中的标识符(变量名、函数名、类名等)。这种命名风格得名于其类似驼峰形状的外观,首字母小写的单词与后续单词的首字母相连,而后续单词的首字母大写。驼峰命名法有两种常见的形式:
1.小驼峰命名法(Lower Camel Case): 第一个单词的首字母小写,后续单词的首字母大写。例如:myVariable、calculateTotalAmount。
2.大驼峰命名法(Upper Camel Case): 所有单词的首字母都大写。通常用于类名。例如:MyClass、CreateNewObject。
#C++##类与对象##驼峰命名法#