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

C++ 中的类(class)和对象(object)

在 C++ 中,类(class)和对象(object)是面向对象编程(OOP)的核心概念。类是一种用户自定义的数据类型,它将数据(成员变量)和操作这些数据的函数(成员函数)封装在一起。对象则是类的实例,通过创建对象可以使用类中定义的成员变量和成员函数。下面详细介绍 C++ 中类和对象的相关知识。

1. 类的定义

类的定义使用 class 关键字,其基本语法如下:

class 类名 {
    // 访问修饰符:public、private、protected
    public:
        // 公有成员,外部可以直接访问
        // 成员变量
        数据类型 成员变量名;
        // 成员函数声明
        返回类型 成员函数名(参数列表);

    private:
        // 私有成员,外部不能直接访问,只能通过公有成员函数访问
        数据类型 成员变量名;

    protected:
        // 受保护成员,在派生类中可以访问
        数据类型 成员变量名;
};  // 注意这里的分号不能省略

示例代码:

#include <iostream>

// 定义一个名为 Person 的类
class Person {
public:
    // 公有成员变量
    std::string name;
    int age;

    // 公有成员函数,用于显示信息
    void displayInfo() {
        std::cout << "姓名: " << name << ", 年龄: " << age << std::endl;
    }
};

2. 对象的创建和使用

定义好类之后,就可以创建该类的对象,并使用对象来访问类的成员变量和成员函数。创建对象的语法如下:

类名 对象名;

示例代码:

#include <iostream>

class Person {
public:
    std::string name;
    int age;

    void displayInfo() {
        std::cout << "姓名: " << name << ", 年龄: " << age << std::endl;
    }
};

int main() {
    // 创建 Person 类的对象
    Person person1;

    // 访问对象的成员变量并赋值
    person1.name = "张三";
    person1.age = 20;

    // 调用对象的成员函数
    person1.displayInfo();

    return 0;
}

3. 构造函数和析构函数

  • 构造函数:是一种特殊的成员函数,用于在创建对象时初始化对象的成员变量。构造函数的名称与类名相同,没有返回类型。
  • 析构函数:也是一种特殊的成员函数,用于在对象销毁时进行一些清理工作。析构函数的名称是在类名前加上波浪号 ~,同样没有返回类型。

示例代码:

#include <iostream>

class Person {
public:
    std::string name;
    int age;

    // 构造函数
    Person(std::string n, int a) {
        name = n;
        age = a;
        std::cout << "对象已创建" << std::endl;
    }

    // 析构函数
    ~Person() {
        std::cout << "对象已销毁" << std::endl;
    }

    void displayInfo() {
        std::cout << "姓名: " << name << ", 年龄: " << age << std::endl;
    }
};

int main() {
    // 使用构造函数创建对象
    Person person("李四", 25);
    person.displayInfo();

    return 0;
}

4. 访问修饰符

C++ 中有三种访问修饰符:

  • public:公有成员可以在类的外部直接访问。
  • private:私有成员只能在类的内部访问,外部不能直接访问,通常通过公有成员函数来间接访问。
  • protected:受保护成员在类的内部和派生类中可以访问,外部不能直接访问。

示例代码:

#include <iostream>

class Person {
private:
    std::string name;
    int age;

public:
    // 构造函数
    Person(std::string n, int a) {
        name = n;
        age = a;
    }

    // 公有成员函数,用于获取私有成员变量的值
    void displayInfo() {
        std::cout << "姓名: " << name << ", 年龄: " << age << std::endl;
    }
};

int main() {
    Person person("王五", 30);
    // 不能直接访问私有成员变量
    // person.name = "赵六";  // 错误
    person.displayInfo();

    return 0;
}

5. 成员函数的实现

成员函数可以在类的定义中直接实现,也可以在类的外部实现。在类的外部实现成员函数时,需要使用作用域解析运算符 ::

示例代码:

#include <iostream>

class Person {
private:
    std::string name;
    int age;

public:
    Person(std::string n, int a);
    void displayInfo();
};

// 在类的外部实现构造函数
Person::Person(std::string n, int a) {
    name = n;
    age = a;
}

// 在类的外部实现成员函数
void Person::displayInfo() {
    std::cout << "姓名: " << name << ", 年龄: " << age << std::endl;
}

int main() {
    Person person("孙七", 35);
    person.displayInfo();

    return 0;
}

通过以上内容,你可以了解 C++ 中类和对象的基本概念、定义和使用方法。类和对象是 C++ 面向对象编程的基础,掌握它们对于编写复杂的程序非常重要。


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

相关文章:

  • 基于Python的药物相互作用预测模型AI构建与优化(下.代码部分)
  • 【股票数据API接口41】如何获取股票指最新分时MA数据之Python、Java等多种主流语言实例代码演示通过股票数据接口获取数据
  • 【数据结构】二叉树
  • wordpress每隔24小时 随机推荐一个指定分类下的置顶内容。
  • JavaScript
  • 用HTML、CSS和JavaScript实现庆祝2025蛇年大吉(附源码)
  • P11467 网瘾竞赛篇之 generals 大法好
  • Java中的线程池参数(详解)
  • Python 学习进阶技术文档
  • Keepalived高可用集群入门学习
  • electron 应用开发实践
  • Android逆向(Mitmproxy)
  • 【自学笔记】JavaWeb的重点知识点-持续更新
  • Oracle11g数据库安装及建库教程
  • JavaScript 创建对象的8种方式?
  • Git进阶之旅:tag 标签 IDEA 整合 Git
  • 算法总结-数组/字符串
  • Linux 五种IO模型总篇(阻塞IO、非阻塞IO、信号驱动IO、多路复用IO(select、poll、epoll)、异步IO)
  • 仿真设计|基于51单片机的温湿度及甲醛检测报警系统
  • OPENPPP2 —— VMUX_NET 多路复用原理剖析
  • DeepSeek R1功能设计涉及的几个关键词
  • 数据分析系列--⑥RapidMiner构建决策树(泰坦尼克号案例含数据)
  • Spring Boot基本项目结构
  • sizeof和strlen的对比与一些杂记
  • 【multi-agent-system】ubuntu24.04 安装uv python包管理器及安装依赖
  • Windows程序设计10:文件指针及目录的创建与删除