C++关键字之——class

本文详细介绍了C++中的类,包括其概念、数据成员、成员函数、访问控制、封装、构造与析构函数、实例化、继承、多态以及使用注意事项,通过实例展示了类的创建和应用。
摘要由CSDN通过智能技术生成

今天我要说的是非标准数据类型——class(类)。

还是一样,先复习旧的知识:

基本数据类型:

整型 int / long / long long
布尔型 bool
字符型 char
实型
→ 单精度型 / 浮点型 float
→ 双精度型 double

非基本数据类型:

数组 [ ]
指针 *
空类型 void
结构体 struct
联合体 union
枚举 enum
class

1、 class简介:

在C++中,类(Class)是一种用户自定义的数据类型,它允许您将数据和函数捆绑在一起,形成一个逻辑实体。类是面向对象编程(OOP)的基础,它提供了一种将数据和相关操作组织在一起的方式,使得代码更加模块化、可重用和易于理解。

  1. 数据成员(Data Members): 类可以包含数据成员,也称为属性或字段,用于存储对象的状态或属性。这些数据成员可以是各种数据类型,包括基本类型(如整数、浮点数)或其他类类型。

  2. 成员函数(Member Functions): 类可以包含成员函数,也称为方法或操作,用于操作对象的数据成员。这些成员函数可以访问和修改对象的数据,以执行特定的操作。

  3. 访问控制(Access Control): 类可以通过访问控制符来限制对其成员的访问。C++提供了三种访问控制级别:public(公有)、protected(受保护)和private(私有)。默认情况下,类的成员是私有的,只能在类的内部访问,但您可以使用访问控制符来更改这种行为。

  4. 封装(Encapsulation): 类支持封装,这意味着它可以隐藏实现的细节,只暴露必要的接口给外部。通过将数据成员私有化并提供公有的访问函数,类可以控制对其数据的访问,从而提高安全性和灵活性。

  5. 构造函数和析构函数(Constructor and Destructor): 类可以包含构造函数和析构函数,用于对象的初始化和清理。构造函数在对象创建时调用,而析构函数在对象销毁时调用,可以用来释放资源或执行其他清理操作。

  6. 类的实例化(Instantiation): 类的实例化创建了类的对象,也称为类的实例。可以使用类名和构造函数来实例化对象,并且可以创建多个对象来代表不同的实体。

  7. 继承(Inheritance): 类可以通过继承来派生新的类,从而创建类层次结构。子类(派生类)可以继承父类(基类)的成员,包括数据成员和成员函数,并且可以添加新的成员或覆盖父类的成员。

  8. 多态(Polymorphism): 类的多态性允许使用基类的指针或引用来引用派生类的对象,并且可以在运行时动态绑定到正确的函数。多态性可以通过虚函数和纯虚函数来实现。

总之,类是C++中的基本构造块,它允许您将数据和函数组织在一起,形成一个独立的、可重用的代码单元。通过封装、继承和多态等特性,类提供了一种强大的方式来设计和实现复杂的代码。

2、 class的深究和使用注意事项:

在深入使用C++中的类时,以下是一些注意事项和深入探讨的方面:

构造函数和析构函数的设计: 构造函数负责初始化对象的状态,而析构函数负责清理对象所使用的资源。在设计这两个函数时,需要考虑对象的生命周期和资源管理,确保正确地初始化和清理对象。
继承与多态的运用: 继承和多态是面向对象编程的核心概念,它们允许您创建更具灵活性和可扩展性的代码。在使用继承时,要注意继承的合理性和层次结构的设计,以避免出现过度复杂或不必要的继承关系。而在使用多态时,要注意正确地设计和使用虚函数,以实现运行时的动态绑定。
封装的实践: 封装是面向对象编程的重要原则之一,它有助于隐藏实现的细节,提高代码的安全性和可维护性。在实践中,要注意封装的适度和接口的设计,确保暴露给外部的接口是简洁、清晰和易于使用的。
友元函数和友元类的使用: 友元函数和友元类允许在一定程度上突破类的封装性,但需要谨慎使用,以避免破坏封装和增加代码的复杂性。
内存管理和对象生命周期: 在使用类时,要注意对象的内存管理和生命周期,避免内存泄漏和悬空指针等问题。可以使用智能指针等RAII(资源获取即初始化)技术来简化内存管理,确保资源在对象生命周期结束时被正确释放。
异常处理: 在类的设计和使用中,要考虑异常处理机制,确保代码能够正确地处理异常情况,并且不会导致对象状态不一致或资源泄漏等问题。
性能优化: 在使用类时,要注意性能优化的问题,避免不必要的对象拷贝和动态内存分配等操作,以提高代码的执行效率和性能。

综上所述,深入研究和使用C++中的类需要理解面向对象编程的基本原则,并在实践中注意设计的合理性、封装的适度、继承与多态的运用、内存管理和异常处理等方面。同时,要不断学习和积累经验,掌握更高级的技巧和最佳实践,以编写出高质量、高效率的C++代码。

是不是感觉有点枯燥无味?没事,用代码来实践!

3、关于class的例子:

这是一个表示猫的简单

#include <iostream>
#include <string>

class Cat {
public:
    // 成员变量
    std::string name;
    int age;

    // 构造函数
    Cat(std::string catName, int catAge) {
        name = catName;
        age = catAge;
    }

    // 成员函数
    void displayInfo() {
        std::cout << "Cat's name: " << name << std::endl;
        std::cout << "Cat's age: " << age << " years old" << std::endl;
    }
};

int main() {
    // 创建一个 Cat 对象
    Cat myCat("Whiskers", 3);

    // 使用成员函数显示猫的信息
    myCat.displayInfo();

    return 0;
}

在这个例子中,Cat 类有两个公有成员变量 name 和 age,分别表示猫的名字和年龄。类包含一个公有的构造函数用于初始化这些成员变量,并包含一个公有的成员函数 displayInfo() 用于显示猫的信息。在 main() 函数中,创建了一个 Cat 对象,并演示了如何使用成员函数显示猫的信息。

完结撒花!!!期待下次的struct!

  • 21
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在面向对象的编程中,C语言并不直接支持类和抽象的概念。引用中提到,final关键字用来修饰方法,表示该方法不能在子类中被覆盖。而abstract关键字用来修饰抽象方法,表示该方法必须在子类中被实现。然而,在C语言中,没有对应的关键字来实现类和抽象的概念。 相反,C语言通过结构体来模拟类的概念。结构体是一种用户自定义的数据类型,可以包含多个不同类型的数据成员。通过结构体,我们可以将相关的数据和功能组合在一起。然而,C语言中的结构体不支持继承和多态等面向对象的特性。 在C语言中,我们可以使用函数指针来模拟抽象类和接口的概念。函数指针可以指向不同的函数,通过使用函数指针,我们可以实现多态性,即在运行时根据函数指针指向的具体函数来执行不同的操作。 综上所述,C语言并不直接支持面向对象中的类和抽象的概念,但可以使用结构体和函数指针来实现类似的功能。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [面向对象——类和对象](https://blog.csdn.net/shouyeren_st/article/details/126210622)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [面向对象编程原则(06)——依赖倒转原则](https://blog.csdn.net/lfdfhl/article/details/126673771)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值