C++ 类的基础用法与详细说明:简单易懂的入门指南

news2024/10/21 20:52:44

什么是类?

C++类_百度百科

是C++中一种用于封装数据和功能的基本结构。你可以将类视为一种自定义的数据类型,它可以包含数据(成员变量)和操作这些数据的函数(成员函数)。

创建一个简单的类

让我们通过一个简单的例子来演示如何定义和使用一个类。我们将创建一个表示**“学生”**的类。

1. 定义类

首先,我们需要定义一个类。以下是一个名为Student的类的示例。

#include <iostream>
#include <string>

class Student {
public:
    // 成员变量
    std::string name; // 学生姓名
    int age;          // 学生年龄
    int id;           // 学生ID

    // 成员函数:设置学生信息
    void setInfo(std::string studentName, int studentAge, int studentId) {
        name = studentName; // 设置姓名
        age = studentAge;   // 设置年龄
        id = studentId;     // 设置ID
    }

    // 成员函数:打印学生信息
    void printInfo() {
        std::cout << "Name: " << name << ", Age: " << age << ", ID: " << id << std::endl;
    }
};

2. 类的结构解释

  • class Student { ... };:这行代码定义了一个名为Student的类。
  • public:这是一个访问修饰符,表示后面定义的成员可以被类外部访问。
  • 成员变量
    1. std::string name;:存储学生的姓名。
    2. int age;:存储学生的年龄。
    3. int id;:存储学生的ID。
  • 成员函数
    1. void setInfo(...)用于设置学生的姓名、年龄和ID。
    2. void printInfo()用于打印学生的详细信息

3. 创建对象

 接下来,我们需要使用这个类来创建对象。对象是类的实例。

int main() {
    // 创建一个Student类的对象
    Student student1;

    // 设置学生信息
    student1.setInfo("Alice", 20, 1001);

    // 打印学生信息
    student1.printInfo();

    // 创建另一个Student类的对象
    Student student2;

    // 设置另一个学生的信息
    student2.setInfo("Bob", 22, 1002);

    // 打印另一个学生的信息
    student2.printInfo();

    return 0;
}

4. 代码解释 

  • Student student1;:创建一个名为student1的对象,该对象是Student类的实例。
  • student1.setInfo("Alice", 20, 1001);:调用setInfo函数来设置student1的姓名、年龄和ID。
  • student1.printInfo();调用printInfo函数来打印学生的信息。

 5.代码与输出结果

C++输⼊&&输出&&换行_c++输出时换行-CSDN博客若不理解可查看

using namespace std;
#include <string>

class Student {
public:
    // 成员变量
    std::string name; // 学生姓名
    int age;          // 学生年龄
    int id;           // 学生ID

    // 成员函数:设置学生信息
    void setInfo(std::string studentName, int studentAge, int studentId) {
        name = studentName; // 设置姓名
        age = studentAge;   // 设置年龄
        id = studentId;     // 设置ID
    }

    // 成员函数:打印学生信息
    void printInfo() {
        std::cout << "Name: " << name << ", Age: " << age << ", ID: " << id << std::endl;
    }
};

int main() {
    // 创建一个Student类的对象
    Student student1;

    // 设置学生信息
    student1.setInfo("Alice", 20, 1001);

    // 打印学生信息
    student1.printInfo();

    // 创建另一个Student类的对象
    Student student2;

    // 设置另一个学生的信息
    student2.setInfo("Bob", 22, 1002);

    // 打印另一个学生的信息
    student2.printInfo();

    return 0;
}

总结

  • 是数据和功能的封装。
  • 成员变量是类中存储数据的变量。
  • 成员函数是类中定义的可以对数据进行操作的函数。
  • 对象是类的实例,你可以创建多个对象来使用同一个类。

共勉 💪

同为未来的it人让我们在共同进步吧。

我很喜欢雷军的一段话:我们就悄悄的干,就算失败了咱也不丢人。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2220287.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java爬虫:获取商品评论数据的高效工具

在电子商务的激烈竞争中&#xff0c;商品评论作为消费者购买决策的重要参考&#xff0c;对于商家来说具有极高的价值。它不仅能够帮助商家了解消费者的需求和反馈&#xff0c;还能作为改进产品和服务的依据。Java爬虫技术&#xff0c;以其稳健性和高效性&#xff0c;成为了获取…

Vue2的依赖注入(跨级通信)基本使用

provide(提供) &#xff0c;inject(注入) 祖先级组件用provide传递数据,它的所有后代都可以通过inject取到数据 使用演示&#xff1a; //祖先组件 <template><div>父组件传的值&#xff1a;{{num}} </div> </template><script> //导入子组件 i…

SourceMonitor,免费代码统计工具,覆盖率,圈复杂度,代码行

SourceMonitor是一款免费的代码度量工具&#xff0c;包含代码行&#xff0c;覆盖率&#xff08;无条件覆盖率&#xff09;&#xff0c;圈复杂度&#xff0c;函数调用深度等指标的测量。 用以下软件安装包&#xff0c;低版本的初始化工程会闪退&#xff0c;工具下载路径&#xf…

Python(numpy库)

numpy基础 NumPy 的全称是“ Numeric Python”&#xff0c;它是 Python 的第三方扩展包&#xff0c;主要用来计算、处理一维或多维数组 ndarray NumPy 定义了一个 n 维数组对象&#xff0c;简称 ndarray 对象&#xff0c;它是一个一系列相同类型元素组成的数组集合。数组中的…

h5页面与小程序页面互相跳转

小程序跳转h5页面 一个home页 /pages/home/home 一个含有点击事件的元素&#xff1a;<button type"primary" bind:tap"toWebView">点击跳转h5页面</button>toWebView(){ wx.navigateTo({ url: /pages/webview/webview }) } 一个webView页 /pa…

springboot二手交易平台

作者&#xff1a;计算机学长阿伟 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、ElementUI等&#xff0c;“文末源码”。 系统展示 【2024最新】基于JavaSpringBootVueMySQL的&#xff0c;前后端分离。 开发语言&#xff1a;Java数据库&#xff1a;MySQL技术&#xff1a;…

电脑上的顽固软件卸载不干净?试试这几款卸载工具,简单几步解决

相信大家日常的工作或学习生活中&#xff0c;都需要使用电脑&#xff0c;而为了完成工作&#xff0c;都会在电脑上安装一些工具。有时候不需要这些工具了&#xff0c;想要卸载时&#xff0c;发现有些软件太顽固了&#xff0c;卸载不掉&#xff0c;或者是卸载不干净。如果您也遇…

uniapp-uniapp + vue3 + pinia 搭建uniapp模板

使用技术 ⚡️uni-app, Vue3, Vite, pnpm &#x1f4e6; 组件自动化引入 &#x1f34d; 使用 Pinia 的状态管理 &#x1f3a8; tailwindcss - 高性能且极具灵活性的即时原子化 CSS 引擎 &#x1f603; 各种图标集为你所用 &#x1f525; 使用 新的 <script setup> …

Excel功能区变灰是什么原因造成?怎么解决?

Microsoft Excel是广泛使用的电子表格软件&#xff0c;但有时用户可能会遇到功能区变灰的问题&#xff0c;这可能导致功能无法使用&#xff0c;影响工作效率和用户体验。本文将深入探讨Excel功能区灰色的原因及解决方案&#xff0c;帮助读者快速解决这一问题。 一、Excel功能区…

Polypyus部署、使用与原理分析

文章目录 前言1、概述2、安装与使用2.1、源码安装2.1.1、部署系统依赖组件2.1.2、使用源码安装系统 2.2、使用方法2.2.1、命令行界面操作方法2.2.2、图形界面操作方法 3、测试用例4、参考文献总结 前言 本博客的主要内容为Polypyus的部署、使用与原理分析。本博文内容较长&…

【Linux】Linux之基础IO

我们先回顾一下C文件接口, #include <stdio.h> #include <string.h>int main() {FILE *fp fopen("myfile", "w");if (!fp){printf("fopen error!\n");}const char *msg "hello world!\n";int count 5;while (count--)…

DORA 机器人中间件学习教程(5)——3D激光雷达数据可视化

DORA中3D激光雷达数据可视化 1 总体思路2 DORA数据接收节点3 编写yml文件4 启动节点参考资料 截止目前 DORA还没有类似于ROS2中RVIZ这样的可视化工具&#xff0c;而在调试算法时我们又需要将数据进行可视化以验证代码的正确性。目前的解决方法是将DORA中的数据发送到ROS2中&…

SpringCloud Gateway保姆级入门教程

什么是微服务网关 SpringCloud Gateway是Spring全家桶中一个比较新的项目&#xff0c;Spring社区是这么介绍它的&#xff1a; 该项目借助Spring WebFlux的能力&#xff0c;打造了一个API网关。旨在提供一种简单而有效的方法来作为API服务的路由&#xff0c;并为它们提供各种增强…

深度学习:开启人工智能的新纪元

深度学习&#xff1a;开启人工智能的新纪元 深度学习是机器学习的一个子领域&#xff0c;它基于人工神经网络的学习算法&#xff0c;特别是那些具有多个非线性变换的层&#xff08;即“深度”&#xff09;。这些算法模仿人脑处理信息的方式&#xff0c;通过学习数据的多层次表…

Python Appium自动化操作抖音

1、功能介绍 使用Python和Appium给手机抖音上的同城模块自动评论&#xff0c;主要是通过模拟用户在抖音同城模块的操作&#xff0c;实现自动发送评论的功能。具体步骤如下&#xff1a; - 安装并配置好Python环境&#xff1b; - 安装Appium库&#xff0c;用于自动化操作手机应…

AI与测试行业调研

业务方向及应用场景 方向 技术 应用 大语言模型 私有化大模型&#xff1a; llama2 privateGPT 业务分析 测试数据生成 机器学习、深度学习应用 视觉自动化&#xff1a; FastbotApplitools 视觉自动化 缺陷预测与挖掘 知识图谱 neo4j 测试用例生成 精准测试 大语言模…

从A到Z,一文通览Python所有内置函数:编程效率提升100%

Python中的内置函数&#xff0c;这些函数覆盖了从基本数据处理到高级编程功能的各种用途。下面&#xff0c;将逐一介绍每个函数的用途和提供相应的代码示例。 A abs()&#xff1a;返回数字的绝对值。 print(abs(-5)) # 输出: 5 aiter()&#xff1a;返回异步迭代器。 async…

【从零开始的LeetCode-算法】910. 最小差值 II

给你一个整数数组 nums&#xff0c;和一个整数 k 。 对于每个下标 i&#xff08;0 < i < nums.length&#xff09;&#xff0c;将 nums[i] 变成 nums[i] k 或 nums[i] - k 。 nums 的 分数 是 nums 中最大元素和最小元素的差值。 在更改每个下标对应的值之后&#xf…

jmeter 从多个固定字符串中随机取一个值的方法

1、先新增用户参数&#xff0c;将固定值设置为不同的变量 2、使用下面的函数&#xff0c;调用这写变量 ${__RandomFromMultipleVars(noticeType1|noticeType2|noticeType3|noticeType4|noticeType5)} 3、每次请求就是随机取的值了

驾驶员异常行为检测数据集(猫脸码客 第223期)

驾驶员异常行为检测数据集 随着智能交通系统的快速发展&#xff0c;驾驶员危险驾驶行为检测已成为确保道路安全、减少交通事故的重要手段。通过先进的图像处理和机器学习技术&#xff0c;可以实现对驾驶员行为的实时监测和预警&#xff0c;从而有效遏制危险驾驶行为的发生。本…