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++##类与对象##驼峰命名法#
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务