gpt4 book ai didi

c++ - 更改命名空间中的变量

转载 作者:行者123 更新时间:2023-12-04 16:55:22 24 4
gpt4 key购买 nike

我想在命名空间中声明一个数组,然后从另一个文件中定义它,然后从第三个文件中在定义后访问它。谁能帮我?顺便说一句,我愿意使用 int[]std::array .

//name.h
#pragma once
namespace Info {
int arr[2];
array<int, 2> arra;
}


//file1.cpp
#include "name.h"
using namespace Info;

arr = {10, 9}
arra = {10, 9}

//main.cpp
#include "name.h"
#include <iostream>
int main() {
cout<<arr[0]<<endl;
}

最佳答案

代码可能是这样的

// header file
namespace Info
{
extern int arr[2];
}

// file1.cpp
namespace Info
{
int arr[2] = { 2, 3 };
}
前置 extern关键字使它成为一个不是定义的声明(不允许有多个定义)。
如果您可以在头文件中使用初始化程序,那么代码可以简化为(C++17 起):
// header file
namespace Info
{
inline int arr[2] = { 2, 3 };
}
并且不需要其他定义。 std::array版本会以同样的方式工作。

关于c++ - 更改命名空间中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68553603/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com