我是编程的初学者,std如果他们使用任何std函数std::cout,我常常看到很多使用前缀的程序std::cin,等等.我想知道它的目的是什么?它只是一种良好的编程方式还是有更多的东西?它对编译器有什么影响,还是可读性或者是什么?谢谢.
Eri*_*rik 12
C++有一个命名空间的概念.
namespace foo {
int bar();
}
namespace baz {
int bar();
}
Run Code Online (Sandbox Code Playgroud)
这两个函数可以共存而不会发生冲突,因为它们位于不同的名称空间中.
大多数标准库函数和类都位于"std"命名空间中.要访问例如cout,您需要按优先顺序执行以下操作之一:
std::cout << 1;using std::cout; cout << 1;using namespace std; cout << 1;您应该避免using使用上述foo和baz命名空间的原因.如果你有using namespace foo; using namespace baz;任何试图打电话bar()会很模糊.使用命名空间前缀是明确而准确的,也是一个好习惯.
Jar*_*Par 11
STL类型和函数在名为的命名空间中定义std.该std::前缀用于使用类型不完全,包括std命名空间.
选项1(使用前缀)
#include <iostream>
void Example() {
std::cout << "Hello World" << std::endl;
}
Run Code Online (Sandbox Code Playgroud)
选项#2(使用命名空间)
#include <iostream>
using namespace std;
void Example() {
cout << "Hello World" << endl;
}
Run Code Online (Sandbox Code Playgroud)
选项#3(单独使用类型)
#include <iostream>
using std::cout;
using std::endl;
void Example() {
cout << "Hello World" << endl;
}
Run Code Online (Sandbox Code Playgroud)
注意:除了不必为每个类型/方法添加前缀std::(特别是在头文件中完成)文件之外,包含整个C++命名空间(选项#2)还有其他含义.许多C++程序员都避免这种做法,而更喜欢#1或#3.
| 归档时间: |
|
| 查看次数: |
2843 次 |
| 最近记录: |