当前位置: 首页 > 知识库问答 >
问题:

我如何在一个文件的作用域中声明一个变量private以使它不与其他文件链接?[关闭]

子车飞文
2023-03-14

我是C++的新手,我一直在尝试学习这种语言,这并不容易,因为我的经验完全是针对python的,所以有很多事情需要考虑。

不管怎样,我一直在尝试测试一个代码,其中有两个文件:“source.cpp”和“variables.cpp”。

//Source.cpp
#include "Variables.cpp"

int mi = 23;

int main() {

    std::cout << mi << std::endl;

    mi = 10;
        
    std::cout << mi << std::endl;
    
    return 0;
}
//Variables.cpp
#include <iostream>
int mi = 8;

现在我正在尝试的是让source.cpp中的第一个cout语句打印23,而不是8,但是链接器在尝试链接两个文件时会导致链接器错误,所以如果有任何关键字,我可以使用它来确保source.ccp中的mi不会链接到variables.cpp中的mi?

我知道这肯定是一个愚蠢的问题,答案就在我眼前,所以请友好点。

任何事都会有帮助的,谢谢!

共有1个答案

公良运锋
2023-03-14

使用未命名的命名空间。它们存在于C++中。

//Source.cpp
#include "Log.h"

namespace {
int mi = 23;
)

int main() {

    std::cout << mi << std::endl;

    mi = 10;
        
    std::cout << mi << std::endl;
    
    return 0;
}
//Variables.cpp
#include <iostream>
namespace {
int mi = 8;
}

优点是在许多声明中的每一个声明中都不请求statice关键字。

 类似资料:
  • 在阅读了许多文章之后,我被困在这个非常简单的任务上。 我有一个只有两个文件的沙盒项目: src/main/groovy/classes/foo 和src/main/groovy/脚本/script.groovy 现在,如果我运行命令: 我得到以下错误: 如何在我的脚本script.groovy中使用我的类Foo?

  • 下面会对C语言、着色器语言ES GLSL、javascript语言和TypeScript语言声明变量的方式进行简单展示,这样可以更方便不同基础读者类比学习。 C语言 着色器语言ES GLSL和C语言有很多相似之处,如果你有一定的C语言基础,对于学习着色器语言也是有一定的帮助的。 // C语言声明一个整形变量并赋值10 int count = 10; // 改变变量值,重新赋值 count=20;

  • 问题内容: 我是PHP的新手,我使用Eclipse SDE构建一个简单的Web应用程序。 我的方案是: 我有 index.php 页面,其中包括登录表单( 2个文本框和Login Button ) 我有包含两个表的MySQL数据库:system_users和user_errors 每当用户成功在index.php页面中登录时,这都应将其重定向到 page1.php ,然后从user_errors表

  • 我似乎不能让写一个回顾按钮链接到我的一个html文件/页面。它可以链接到任何其他的。这是一个奇怪的问题,我似乎无法解决。它不会链接到write的文件是WriteReview.html。 null null

  • 问题内容: 这是我的第一个文件: 我想要这个配置变量在另一个文件中,所以我在另一个文件中所做的是: 但这给我一个错误。 请提出我该怎么办? 问题答案: 您需要的是module.exports 出口产品 在当前模块的所有实例之间共享并可以通过require()访问的对象。export与module.exports对象相同。有关更多信息,请参见src / node.js。导出实际上不是全局的,而是每个

  • 问题内容: 我是新手,正在尝试制作一个简单的随机句子生成器-如何将随机项从另一个.py文档中存储的列表中拉出?我正在使用 从列表中拉出。如何告诉python verb_list在另一个文档中? 知道解决方案背后的原理是有帮助的。我想这有点像“文件引用”,“文件桥接”等。 问题答案: 您可以从文件中导入变量: vardata.py mainfile.py 您也可以: 从该文件导入所有内容。不过要小心