这是我的代码:
#ifndef DATE_H_
#define DATE_H_
namespace std {
class Date {
public:
Date();
virtual ~Date();
};
} /* namespace std */
#endif /* DATE_H_ */
Run Code Online (Sandbox Code Playgroud)
我为我的作业创建了课程日期,并创建了namespace std{......}.我不知道它的用途.为什么它不像往常一样写有use namespace std;
什么区别?
您的代码在命名空间std中声明了您的类Date,即您的类完全限定名称将是std :: Date
一份声明
using namepace std;
Run Code Online (Sandbox Code Playgroud)
搜索符号时将包含命名空间std.
一些额外的说明:
using namespace在*.h(或包含在多个文件中的任何内容)上使用它并不是一个好习惯...因为它可能会有意想不到的副作用,符号被解析为错误的命名空间.首先:你不应该在std命名空间中放置任何东西。
namespace foo
{
class A {};
}
Run Code Online (Sandbox Code Playgroud)
将类放在A命名空间中foo,因此它的全名是foo::A.
using namespace foo;
Run Code Online (Sandbox Code Playgroud)
foo意味着您无需使用限定符即可访问其中的所有内容foo::。
请注意,这using namespace通常是不受欢迎的,并且可能会导致许多意想不到的问题。
最重要的是,不要将其写在标题中。
如果你说
using namespace foo;
class A{};
Run Code Online (Sandbox Code Playgroud)
A不在内部foo,而是在全局命名空间中。
| 归档时间: |
|
| 查看次数: |
1969 次 |
| 最近记录: |