提问者:小点点

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


我是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个答案

匿名用户

使用未命名的命名空间。它们存在于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关键字。

相关问题