Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/137.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果我们没有';是否不显式声明它的命名空间名称? 最近我在尝试熟悉C++。我对“名称空间”的东西有点困惑。下面是一个示例代码: #include <iostream> using namespace std; namespace foo { int value() { return 5; } } namespace bar { const double pi = 3.1416; double value() { return 2*pi; } } int a; //what's the namespace it belongs to? int main () { cout << foo::value() << '\n'; cout << bar::value() << '\n'; cout << bar::pi << '\n'; return 0; } #包括 使用名称空间std; 名称空间foo { int value(){return 5;} } 名称空间栏 { 常数双pi=3.1416; 双值(){return 2*pi;} } INTA//它所属的名称空间是什么? int main(){ 库特_C++_Namespaces - Fatal编程技术网

如果我们没有';是否不显式声明它的命名空间名称? 最近我在尝试熟悉C++。我对“名称空间”的东西有点困惑。下面是一个示例代码: #include <iostream> using namespace std; namespace foo { int value() { return 5; } } namespace bar { const double pi = 3.1416; double value() { return 2*pi; } } int a; //what's the namespace it belongs to? int main () { cout << foo::value() << '\n'; cout << bar::value() << '\n'; cout << bar::pi << '\n'; return 0; } #包括 使用名称空间std; 名称空间foo { int value(){return 5;} } 名称空间栏 { 常数双pi=3.1416; 双值(){return 2*pi;} } INTA//它所属的名称空间是什么? int main(){ 库特

如果我们没有';是否不显式声明它的命名空间名称? 最近我在尝试熟悉C++。我对“名称空间”的东西有点困惑。下面是一个示例代码: #include <iostream> using namespace std; namespace foo { int value() { return 5; } } namespace bar { const double pi = 3.1416; double value() { return 2*pi; } } int a; //what's the namespace it belongs to? int main () { cout << foo::value() << '\n'; cout << bar::value() << '\n'; cout << bar::pi << '\n'; return 0; } #包括 使用名称空间std; 名称空间foo { int value(){return 5;} } 名称空间栏 { 常数双pi=3.1416; 双值(){return 2*pi;} } INTA//它所属的名称空间是什么? int main(){ 库特,c++,namespaces,C++,Namespaces,属于全局命名空间。这意味着全局命名空间中具有相同名称的另一个变量可能会给您带来链接器错误 如果我想从其他文件中使用这个变量,我们如何指定它的名称空间 int a 您可以将其包含在名称空间中。通常,名称空间中应该包含所有相关实体。因此,如果您认为可以将其放在现有名称空间中,则可以将其设置为开始。a位于中。如果它没有阴影,并且假设您包含了正确的头文件,您只需在o中将其称为a但是,如果它是阴影文件,或者您只是想安全起见并明确地引用它,您可以将其称为::a 比如说, #include <head

属于全局命名空间。这意味着全局命名空间中具有相同名称的另一个变量可能会给您带来链接器错误

如果我想从其他文件中使用这个变量,我们如何指定它的名称空间

int a
您可以将其包含在名称空间中。通常,名称空间中应该包含所有相关实体。因此,如果您认为可以将其放在现有名称空间中,则可以将其设置为开始。

a
位于中。如果它没有阴影,并且假设您包含了正确的头文件,您只需在o中将其称为
a
但是,如果它是阴影文件,或者您只是想安全起见并明确地引用它,您可以将其称为
::a

比如说,

#include <header_for_a.h>

namespace B
{
 int a;//This now shadows the "a" from the global namespace.

 void foo()
 {
  a = 1;//This is referring to B::a;
  ::a = 2; // This is referring to "a" from the global namespace.
 } 
}
#包括
命名空间B
{
int a;//现在,它将从全局名称空间中隐藏“a”。
void foo()
{
a=1;//这是指B::a;
::a=2;//这是指全局命名空间中的“a”。
} 
}

可能不会给出链接器错误。如果同一个文件中有另一个链接器错误,则会出现编译器错误,否则会出现未定义的行为,通常不会导致链接器错误。因此,这意味着如果我们尝试在多个翻译单元中定义同一个变量,链接器会给出绿色信号。这取决于链接器,但C标准不会我们不需要诊断它,链接器经常出于各种原因将事情保持在最低限度