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

 更新时间:2024年03月26日 09:59:10   作者:架构师老卢  
C++中使用extern关键字可实现在源文件之间共享变量与类成员函数,通过声明变量或类在头文件中,再在一个源文件中定义,其他源文件通过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实现源文件变量与类成员函数的巧妙共享的文章就介绍到这了,更多相关C++ extern源文件变量内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C++中std::setw()的用法解读

    C++中std::setw()的用法解读

    这篇文章主要介绍了C++中std::setw()的用法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • C++中std::priority_queue的使用小结

    C++中std::priority_queue的使用小结

    std::priority_queue是C++ STL提供的优先队列,本文主要介绍了C++中std::priority_queue的使用小结,具有一定的参考价值,感兴趣的可以了解一下
    2025-04-04
  • Qt重写QStackedWidget模拟实现home界面滑动效果

    Qt重写QStackedWidget模拟实现home界面滑动效果

    这篇文章主要为大家详细介绍了Qt如何通过重写QStackedWidget模拟实现home界面滑动效果,文中的实现过程讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2022-11-11
  • 使用mmap实现多进程对大文件拷贝

    使用mmap实现多进程对大文件拷贝

    这篇文章主要介绍了使用mmap实现多进程对大文件拷贝,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-10-10
  • C++进程共享数据封装成类实例

    C++进程共享数据封装成类实例

    这篇文章主要介绍了C++进程共享数据封装成类的方法,以实例形式讲述了其封装代码与具体用法,具有一定的实用价值,需要的朋友可以参考下
    2014-10-10
  • Cocos2d-x UI开发之CCControlButton控件类实例

    Cocos2d-x UI开发之CCControlButton控件类实例

    这篇文章主要介绍了Cocos2d-x UI开发之CCControlButton控件类实例,本文代码中包含大量注释来讲解CCControlButton控件类的使用,需要的朋友可以参考下
    2014-09-09
  • C++中的string类型

    C++中的string类型

    这篇文章主要介绍了C++中的string类型,在C++当中,除了char 类型,还有专门的字符串类型,就叫做string,下面文字将围绕其相关资料展开详细内容,需要的朋友可以参考一下,希望对你有所帮助
    2021-11-11
  • C++文件的操作及小实验示例代码详解

    C++文件的操作及小实验示例代码详解

    这篇文章主要介绍了C++文件的操作及小实验,对于文件,它是一个流对象,对文件的操作无非是读和写,通过本文的学习大家将会理解文件的具体操作
    2022-05-05
  • C++中指针和引用的区别分析

    C++中指针和引用的区别分析

    这篇文章主要介绍了C++中指针和引用的区别,有需要的朋友可以参考一下
    2014-01-01
  • C语言版学生信息管理系统

    C语言版学生信息管理系统

    这篇文章主要为大家详细介绍了C语言版学生信息管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-12-12

最新评论