C++在不同文件中定义全局常量、类和主函数及相互调用

创建以下文件:

  1. constants.h - 用于定义常量。
  2. MyClass.h - 用于声明类。
  3. MyClass.cpp - 用于实现类的方法。
  4. main.cpp - 包含主函数。

1. constants.h

#ifndef CONSTANTS_H
#define CONSTANTS_H// 定义一个常量
const int MY_CONSTANT = 100;#endif // CONSTANTS_H

2. MyClass.h

#ifndef MYCLASS_H
#define MYCLASS_Hclass MyClass {
public:MyClass(); // 构造函数void display() const; // 公共成员函数,显示常量void setValue(int value); // 设置一个值int getValue() const; // 获取当前值private:int m_value; // 私有成员变量
};#endif // MYCLASS_H

3. MyClass.cpp

#include <iostream>
#include "MyClass.h"
#include "constants.h"// 构造函数
MyClass::MyClass() : m_value(0) {}// 公共成员函数,显示常量
void MyClass::display() const {std::cout << "The value of MY_CONSTANT is: " << MY_CONSTANT << std::endl;
}// 设置一个值
void MyClass::setValue(int value) {m_value = value;
}// 获取当前值
int MyClass::getValue() const {return m_value;
}

4. main.cpp

#include <iostream>
#include "MyClass.h" // 引入类的声明
#include "constants.h" // 引入常量定义int main() {std::cout << "The value of MY_CONSTANT is: " << MY_CONSTANT << std::endl;  // 直接输出头文件常量MyClass myObject; // 创建 MyClass 的实例myObject.display(); // 调用 display 方法,输出常量的值myObject.setValue(42); // 设置 m_value 的值std::cout << "Current value is: " << myObject.getValue() << std::endl; // 获取并输出当前值return 0;
}

运行结果

运行程序时,输出将类似于:

The value of MY_CONSTANT is: 100
The value of MY_CONSTANT is: 100
Current value is: 42

这个示例展示了如何将类的声明和实现分开,并且在不同的文件中使用常量和类的方法。

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

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

相关文章

Linux探秘坊-------1.系统核心的低语:基础指令的奥秘解析(1)

1.Linux的背景介绍 Linux 操作系统的发展历程充满了激情与创新喵&#xff5e;&#x1f380; 萌芽期 (1983 - 1991)&#xff1a;Linux 的历史可追溯到 1983 年&#xff0c;理查德斯托曼 (Richard Stallman) 发起 GNU 计划&#xff0c;目标是创建一个自由软件操作系统。1987 年发…

三款良心实用的桌面待办提醒软件 让工作效率Up提升!

互联网科技的迅速发展&#xff0c;让大家的工作方式也发生了巨大的变化&#xff0c;过去传统的办公方式已然不能适应当下节奏快速发展的时代。在如今工作快节奏的催促下&#xff0c;我们如何才能从琐碎、复杂的工作任务重&#xff0c;找到一条清晰的工作节奏成为效率工作up提升…

热点更新场景,OceanBase如何实现性能优化

案例背景 这个案例来自一个保险行业的客户&#xff1a;他们的核心系统底层采用了OceanBase数据库作为存储解决方案&#xff0c;然而&#xff0c;在系统上线运行后&#xff0c;出现了一个异常情况&#xff0c;执行简单的主键更新语句时SQL执行时间出现了显著的波动。为了迅速定…

【银河麒麟】时间同步工具chrony与ntp对比

了解更多银河麒麟操作系统全新产品&#xff0c;请点击访问 麒麟软件产品专区&#xff1a;https://product.kylinos.cn 开发者专区&#xff1a;https://developer.kylinos.cn 文档中心&#xff1a;https://documentkylinos.cn Chrony介绍 Chrony 是一个用于时间同步的软件。…

fork函数详解

前言 之前我们提到&#xff0c;创建子进程的时候&#xff0c;需要使用fork()函数&#xff0c;其中分别有id 0和id >0的if函数&#xff0c;但是实验表明&#xff0c;两个if函数中的内容都得到了实现。按照我们之前所学&#xff0c;一个变量同一时间只能有一个值&#xff0c;…

二叉排序树

在说二叉排序树之前先考虑这样一个例子&#xff0c;假设我们的数据集开始只有一个数{62}&#xff0c;然后现在需要将88插入数据集&#xff0c;于是数据集成了{62,88}&#xff0c;还保持着从小到大有序&#xff0c;再查找有没有58&#xff0c;没有则插入&#xff0c;可此时要想在…

GitLab 中文版如何禁止从 UI 上下载代码?

本文分享如何通过配置来禁止用户从 GitLab 中文版 UI 界面上下载源代码。 GitLab 中文版也就是极狐GitLab&#xff0c;使用界面和 GitLab 一样。常规下载代码的方式也一样&#xff0c;要么使用 SSH 或者 HTTP 克隆&#xff0c;要么直接从 UI 上下载源代码&#xff1a; 但是有些…

Conmi的正确答案——ESP32导出烧录进芯片的固件

版本&#xff1a;ESP-IDF 4.4.7 系统&#xff1a;Windows 11 相关链接&#xff1a; 官网&#xff1a;Read Flash Contents: read_flash GITHUB独立工具&#xff1a;esptool 命令&#xff1a; # 我这里用的是C3和windows版的EXE工具 esptool.exe --chip ESP32-C3 -p COM17 -b …

vue2+ element ui 集成pdfjs-dist

目录 1. 下载Pdf.js1.1 下载1.2 修改配置1.2.1 将pdfjs-3.8.162-dist复制到项目中1.2.2 解决跨域问题1.2.3 将pdf.worker.js文件复制到public目录下1.2.4 安装 pdfjs-dist1.2.5 前端vue代码(示例) 3. 参考资料 1. 下载Pdf.js 1.1 下载 下载链接&#xff08;官方&#xff09;需…

为什么越来越多的跨境卖家放弃电商平台,转向独立站?

对于做跨境电商的卖家来说&#xff0c;采用多平台、多站点的经营策略非常重要。这样做不仅可以分散风险&#xff0c;避免把所有的钱都押在一个市场上&#xff0c;减少“把所有鸡蛋放在一个篮子里”的风险&#xff0c;还能拓宽销售渠道&#xff0c;帮助卖家赚更多的钱&#xff0…

PCB+SMT线上报价系统+PCB生产ERP系统自动化拼板模块升级

PCB生产ERP系统的智能拼版技术&#xff0c;是基于PCB前端报价系统获取到的用户或市场人员已录入系统的板子尺寸及set参数等&#xff0c;按照最优原则或利用率最大化原则自动进行计算并输出拼版样式图和板材利用率&#xff0c;提高工程人员效率&#xff0c;减少板材的浪费。覆铜…

2024年第四届数字化社会与智能系统国际学术会议(DSInS 2024)

会议地点 悉尼会场&#xff1a;澳大利亚悉尼-悉尼科技大学空中科技大学功能中心&#xff0c;沃特尔&#xff08;Aerial UTS Function Centre, Wattle Room&#xff09; 具体地址&#xff1a;Building 10, Level 7, 235 Jones Street, Ultimo, New South Wales, 2007, AU 郑州…

从零开始快速构建Vue3项目

一、技术选型 组件大类 具体插件 vue3插件 相关插件开发文档 基础架构搭建 初始项目搭建、打包构件工具&#xff1a;vite开始 | Vite路由管理及菜单权限封装vue-router介绍 | Vue Router状态管理Pinia介绍 | Pinia 中文文档API请求及异常封装axiosUI框架 element-uihttps…

spring cloud 入门笔记1(RestTemplate,Consul)

最大感受&#xff1a; spring cloud无非是将spring boot中的各个工作模块拆分成独立的小spring boot&#xff0c;各个模块之间&#xff0c;不再是通过导包什么的&#xff0c;调用而是通过网路进行各个模块之间的调用 工具一&#xff1a;RestTemplate 在Java代码中发送HTTP请…

从虚构到现实!FAME助力模型编辑走向实际应用

论文&#xff1a;FAME: Towards Factual Multi-Task Model Editing 链接&#xff1a;https://arxiv.org/abs/2410.10859项目&#xff1a;https://github.com/BITHLP/FAME 前言 大语言模型中丰富的知识使得其在如智能助理&#xff0c;法律顾问&#xff0c;医疗咨询等多个领域中…

无需Photoshop即可在线裁剪和调整图像大小的工具

Bitmind是一个灵活且易于使用的批量图像本地化处理器&#xff0c;经过抓包看&#xff0c;这个工具在浏览器本地运行&#xff0c;不会上传图片到服务器&#xff0c;所以安全性完全有保证。 它可以将图像调整到任何特定尺寸&#xff0c;并在必要时按比例裁剪。 这是一个在线工具…

计算两个结构的乘法

在行列可自由变换的平面上&#xff0c;2点结构有3个 3点结构有6个 计算2*2 2a1*2a14a6 2a1*2a24a8 2a1*2a34a12 显然2a1*2a14a6因为这3个结构都分布在同一列上&#xff0c;就是整数乘法。2a1*2a2的结果有2种写法&#xff0c;一种外形像2a1细节为2a2&#xff0c;一种外形为2…

短剧项目全流程花费项目详解:从软件采购到OSS流量

一、引言 随着网络视频的兴起&#xff0c;短剧项目作为一种新兴的内容形式&#xff0c;受到了广泛关注。然而&#xff0c;短剧项目运营过程中涉及诸多费用&#xff0c;本文将对短剧项目的各项花费进行明细分析&#xff0c;以帮助相关从业者更好地规划预算和控制成本。 二、软…

Vector Optimization – Vector Mask Register

文章目录 Vector优化 – Vector掩码寄存器 Vector优化 – Vector掩码寄存器 One of the reasons for low levels of vectorization is the presence of conditionals (IF statements) inside loops. IF statements introduce control dependencies into a loop. 矢量化水平低的…

冗余连接2 hard题 代随C#写法

此题在卡码网109与力扣685题亦有记载 有一说一C#写法我没咋搞懂 就看明白了思路 这里贴一个答案待后续我醒悟了再来看罢 难就难在对整体数据结构classUnion&#xff08;并查集&#xff09;的理解不熟并且 对于输入输出这个迭代过程理解上也比较吃力 109. 冗余连接II 题…