当前位置: 首页 > article >正文

「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++的面向对象编程至关重要。


在这里插入图片描述


http://www.kler.cn/a/372745.html

相关文章:

  • 版本管理工具切换 | svn切换到gitlab | gitblit 迁移到 gitlab
  • STL——list的介绍和使用
  • 微信小程序-全局数据共享/页面间通信
  • unity :Error building Player: Incompatible color space with graphics API
  • k8s Ingress 七层负载
  • 迪杰斯特拉算法(Dijkstra‘s Algorithm
  • 路由参数与请求方式
  • 理解环境变量与Shell编程:Linux开发的基础
  • 将你的 Kibana Dev Console 请求导出到 Python 和 JavaScript 代码
  • GB/T 28046.2-2019 道路车辆 电气及电子设备的环境条件和试验 第2部分:电气负荷(4)
  • 如何写好prompt以及评测prompt的好坏
  • 14.社团管理系统(基于springboot和vue)
  • 力扣hot100-->递归/回溯
  • 10.Three.js射线拾取,实现点击选中场景中的物体
  • 【人工智能】重塑未来生活与工作的引擎
  • 鸿蒙原生应用开发及部署:首选华为云,开启HarmonyOS NEXT App新纪元
  • 【每日C/C++问题】
  • 国内短剧源码短剧系统搭建小程序部署H5、APP打造短剧平台
  • 闯关leetcode——228. Summary Ranges
  • Steam deck 倒腾日记 - 安装Windows软件,玩上黑神话悟空