更改命名空间中的变量
Changing variables in namespaces
我想在命名空间内声明一个数组,然后从另一个文件定义它,然后从第三个文件定义后访问它。谁能帮我?顺便说一句,我愿意使用 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
版本的工作方式相同。
我想在命名空间内声明一个数组,然后从另一个文件定义它,然后从第三个文件定义后访问它。谁能帮我?顺便说一句,我愿意使用 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
版本的工作方式相同。