Mik*_*son 94
也许你也想知道你也可以把它using namespace std;放在一个函数体中,如下所示.这将限制using namespace声明的范围.
void f() {
using namespace std;
cout << "Foo" << endl;
//..
};
void g() {
cout << "Bar" << endl; //ERROR: cout and endl are not declared in this scope.
};
Run Code Online (Sandbox Code Playgroud)
如果你想在头文件中编写的函数体中使用命名空间的很多元素,这可能很有用(你不应该使用它,但有时候它是正常的,甚至几乎是必要的(例如模板) )).
mgi*_*uca 14
"功能实现文件"是指.h文件还是.cpp文件?(我通常会将.cpp文件称为"实现"文件,而.h文件则是"接口"文件.)
如果你的意思是.cpp文件,那么当然.这是你通常看到的地方using namespace std.这意味着此.cpp文件中的所有代码都可以std无限制地访问.
如果你的意思是.h文件,那么你可以,但你不应该.如果将它包含在.h文件中,它将自动应用于包含.h文件的任何.cpp文件,该文件可能是很多文件.您通常不希望告诉其他模块要导入哪些名称空间.最好将它放在每个.cpp文件中,而不是放在一个普通的.h文件中.
我假设你的意思是这样的:
// Foo.h
void SayHello();
Run Code Online (Sandbox Code Playgroud)
...
// Foo.cpp
#include "Foo.h"
using namespace std;
void SayHello()
{
cout << "Hello, world!" << endl;
}
Run Code Online (Sandbox Code Playgroud)
如果是这样的话,那么是的.但是,using namespace std;在较大的项目中使用它被认为是不好的做法.
| 归档时间: |
|
| 查看次数: |
20863 次 |
| 最近记录: |