C++ 中的命名空间问题

发布于 2024-12-28 17:28:12 字数 353 浏览 0 评论 0原文

我有两个文件 Sample.cpp 和 Main_file.cpp。 Sample.cpp 只有一个命名空间n1,其中包含int 变量x 的定义。我想在我的 main_file.cpp 中打印这个变量 x 。我该怎么做呢?

//Sample.cpp_BEGINS

namespace n1
{
    int x=10;
}
//Sample.cpp_ENDS

//Main_FILE_BEGINS

void main()
{
    print x;
}
//MAIN_FILE_ENDS

感谢您提供的任何帮助。

I have two files Sample.cpp and Main_file.cpp. Sample.cpp has only one namespace n1 which contains the definition of int variable x. I want to print this variable x in my main_file.cpp. How do I go about doing this?

//Sample.cpp_BEGINS

namespace n1
{
    int x=10;
}
//Sample.cpp_ENDS

//Main_FILE_BEGINS

void main()
{
    print x;
}
//MAIN_FILE_ENDS

Thank you for any help you can provide.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

聚集的泪 2025-01-04 17:28:12

您使用变量的完全限定名称:

int main()
{   
     n1::x = 10;

     return 0;
}

You use the fully qualified name of the variable:

int main()
{   
     n1::x = 10;

     return 0;
}
悲凉≈ 2025-01-04 17:28:12

要使 n1::x 可从 main.cpp 访问,您可能需要创建并包含 sample.h

// sample.h
#ifndef SAMPLE_H
#define SAMPLE_H

namespace n1
{
    extern int x;
}
#endif

// sample.cpp
#include "sample.h"

namespace n1
{
    int x = 42;
}

#include <iostream>
#include "sample.h"

int main()
{   
     std::cout << "n1::x is " << n1::x;
}

如果您不想创建头文件,您也可以在你的 main.cpp 中执行此操作:

#include <iostream>

namespace n1
{
    extern int x;
}    

int main()
{   
     std::cout << "n1::x is " << n1::x;
}

To make n1::x accessible from main.cpp you'll probably want to create and include sample.h:

// sample.h
#ifndef SAMPLE_H
#define SAMPLE_H

namespace n1
{
    extern int x;
}
#endif

// sample.cpp
#include "sample.h"

namespace n1
{
    int x = 42;
}

#include <iostream>
#include "sample.h"

int main()
{   
     std::cout << "n1::x is " << n1::x;
}

If you prefer not to create a header file you can also do this in your main.cpp:

#include <iostream>

namespace n1
{
    extern int x;
}    

int main()
{   
     std::cout << "n1::x is " << n1::x;
}
猥︴琐丶欲为 2025-01-04 17:28:12

在 main 中添加一行 using namespace n1 ,或者您也可以按照 @als 的建议进行操作。

add a line using namespace n1 in main or you can also do as @als suggested.

安静 2025-01-04 17:28:12

从您的评论来看,您似乎只需要 2 个 .cpp 文件。在这种情况下,以下将完成这项工作:

//Sample.cpp_BEGINS
namespace n1
{
  int x=10;
}
//Sample.cpp_ENDS

//Main_FILE_BEGINS
namespace n1
{
  extern int x;   // <---- mention that `x` is defined in other .cpp file
}
void main()
{
  print n1::x;  // to avoid 'n1::', mention 'using namespace n1;` above
}
//MAIN_FILE_ENDS

From your comment, it seems that you want only 2 .cpp files. In that case, following will do the job:

//Sample.cpp_BEGINS
namespace n1
{
  int x=10;
}
//Sample.cpp_ENDS

//Main_FILE_BEGINS
namespace n1
{
  extern int x;   // <---- mention that `x` is defined in other .cpp file
}
void main()
{
  print n1::x;  // to avoid 'n1::', mention 'using namespace n1;` above
}
//MAIN_FILE_ENDS
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文