C++共享之道:用extern实现源文件变量与类成员函数的巧妙共享

这篇具有很好参考价值的文章主要介绍了C++共享之道:用extern实现源文件变量与类成员函数的巧妙共享。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

C++共享之道:用extern实现源文件变量与类成员函数的巧妙共享

概述:在C++中,使用`extern`关键字可实现在源文件之间共享变量与类成员函数。通过声明变量或类在头文件中,再在一个源文件中定义,其他源文件通过`extern`引用,促使模块化、可维护的代码组织。

在C++中,extern关键字可用于在源文件之间共享变量。它告诉编译器某个变量的声明在其他源文件中,其定义在当前源文件之外。以下是基础和高级功能的示例:

基础功能:

示例源代码:

// 文件: variable.h
#pragma once

// 在头文件中声明变量,不进行定义
extern int sharedVariable;
// 文件: file1.cpp
#include "variable.h"

// 在源文件中定义变量
int sharedVariable = 42;
// 文件: file2.cpp
#include <iostream>
#include "variable.h"

// 在另一个源文件中使用共享变量
extern int sharedVariable;

int main() {
    std::cout << "共享变量的值:" << sharedVariable << std::endl;
    return 0;
}

在这个示例中,variable.h头文件声明了sharedVariable,而file1.cpp源文件定义了这个变量。在file2.cpp中,通过extern关键字引用了sharedVariable,并打印了其值。

高级功能:

示例源代码:

// 文件: shared.h
#pragma once

class SharedClass {
public:
    void DisplayMessage();
};
// 文件: file1.cpp
#include "shared.h"

#include <iostream>

// 定义类的成员函数
void SharedClass::DisplayMessage() {
    std::cout << "Hello from SharedClass!" << std::endl;
}
// 文件: file2.cpp
#include "shared.h"

int main() {
    // 引用已定义的类成员函数
    SharedClass sharedObject;
    sharedObject.DisplayMessage();

    return 0;
}

在这个示例中,shared.h头文件声明了SharedClass类,并在file1.cpp源文件中定义了它的成员函数。然后,在file2.cpp中使用了SharedClass,并调用了它的成员函数。

这两个示例展示了使用extern在源文件之间共享变量和类成员函数的方法,有助于实现模块化的代码结构。

 

C++共享之道:用extern实现源文件变量与类成员函数的巧妙共享文章来源地址https://www.toymoban.com/news/detail-842977.html

到了这里,关于C++共享之道:用extern实现源文件变量与类成员函数的巧妙共享的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【毕业设计】43-基于单片机的红外无线防盗报警系统设计与实现(原理图工程源文件+源代码+实物图+答辩论文)

    资料包含:毕业设计全套资料(精品) 原理图工程文件 原理图截图 PCB工程文件 实物图片 答辩论文低重复率文档,25923字 英文文献及翻译 主 要 研 究 内 容 、 方 法 和 要 求 主要研究内容: 基于单片机作为核心控制器,以89C52系列单片机来实现整个系统,需要人体检测设备

    2024年02月04日
    浏览(53)
  • vscode 无法打开源文件

    以下是c/c++插件的intelligense设置情况: 解决办法: 重新安装vsode无用;重新下载mingw64,管用了!(我猜可能是之前换电脑移植文件的时候导致了部分文件丢失)

    2024年02月07日
    浏览(46)
  • Figma怎么导出源文件?

    Figma 是一款备受网页和 UI 设计师喜爱的基于矢量的设计工具。那么,如何在 Figma 中导出源文件呢?本篇文章将为大家演示如何以更加简单的方式,从 Figma 快速、免费导出源文件。 即时设计 是一款拥有强大导入导出功能的设计工具,全面覆盖了 Figma 设计能力的且为全中文的

    2024年02月11日
    浏览(53)
  • VScode中添加头文件和源文件的方法

            在正常情况下,若同一文件夹下若头文件、源文件、和主要代码在同一文件夹下,则可以正常运行程序。 如图(此为Visual Studio 示例):   编译结果(无报错):     但在VScode中,同样的使用方式会产生报错。 如下:    main.c:  myheadfile.h: myheadfile.c:    报错如

    2023年04月09日
    浏览(43)
  • CMake获取目录下所有源文件

    1、aux_source_directory指令         aux_source_directory( dir variable ) 比如:         aux_source_directory(${CMAKE_CURRENT_SOURCE_DIR} ALL_SOURCE) , 这样将当前目录所有的源文件(.cpp 和.c文件)都放到了ALL_SOURCE变量中,但是头文件并没有被包括进去,若在头文件有函数的实现部分,采用这

    2024年02月15日
    浏览(46)
  • Linux--多个源文件编译成同一个可执行文件

    写法一:不推荐 写法二、推荐 $@: 代表目标文件    $^: 代表生成目标文件的所有源文件

    2024年02月15日
    浏览(59)
  • Vivado中如何修改IP源文件

    前一篇文章是通过改变JESD204B IP的设置,在Shared Logic里勾选in example design,来避免共用输入时钟的问题。那么还有没有别的办法呢?有没有更直接点的实现方式呢? 答案是肯定的:可以 直接修改IP,将IBUFDS从IP里移出去 ,放到外面就可以共用了。修改IP是一个比较复杂的办法,

    2024年02月11日
    浏览(83)
  • Lua之Lua源文件批量转换为luac字节码文件

    准备的工具:luac.exe  CSDN https://mp.csdn.net/mp_download/manage/download/UpDetailed Unity版:

    2024年02月11日
    浏览(37)
  • 教你怎么在电脑端下载西瓜视频源文件

    家里长辈平时爱用西瓜视频,看到喜欢的广场舞就会收藏,甚至想下载到视频机,晚上去广场跟着跳🤣。 这时计算机专业出身的我,就派上用场了。不废话,直接上手: 打开西瓜视频官网,搜索到想要的视频 打开 F12(开发者工具) 切换到移动端模式,刷新页面 在 Network

    2024年02月05日
    浏览(250)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包