`
codepeak
  • 浏览: 32578 次
  • 性别: Icon_minigender_1
  • 来自: 南京
最近访客 更多访客>>
社区版块
存档分类
最新评论

头文件中的名字空间

阅读更多
不要在头文件中放置使用指令,使用指令的通常形式是:
using namespace std

因为std是环绕整个标准c++库的名字空间,所以这个特定的使用指令允许不用限定方式使用标准c++库中的名字。但是在头文件中是绝不会看到使用指令的(至少,不在一个范围之外)。原因是,这样的使用指令去除了对这个特定名字空间的保护,并且这个结果一直持续到当前的编译单元结束。如果将一个使用指令放在一个头文件中(在一个范围之外),这就意味着“名字空间保护”将在包含这个头文件的任何文件中消失,这些文件常常是其他文件的头文件。这将很容易最终在实际上在各处“关闭”名字空间,因此不能体现名字空间的好处。
分享到:
评论

相关推荐

    c语言头文件,api,资料

    8. **命名空间和作用域**:虽然C语言不直接支持命名空间,但通过合理地组织头文件,可以避免全局变量和函数名冲突。此外,了解局部变量、全局变量和静态变量的作用域对正确使用头文件非常重要。 9. **头文件保护**...

    vc++6.0 头文件大全

    8. **命名空间**:C++引入了命名空间(namespace)的概念,如`std`,以避免全局作用域中的名字冲突。在使用标准库函数时,通常需要使用`std::`来限定其所在的命名空间,如`std::cout`。 9. **头文件和源文件的关联*...

    在名字空间中声明类和成员函数定义.pdf

    在名字空间中声明类和成员函数定义 在名字空间中声明类和成员函数是常用的编程技术,但许多程序员都不知道如何正确地使用名字空间来声明自己的类和函数。本文将讨论如何在名字空间中声明类和成员函数,以及如何在...

    C++信息奥赛——入门引导 头文件.pdf

    C++信息奥赛——入门引导 头文件 本文档着重介绍C++语言中的头文件,涵盖了头文件...对于原来C语言的头文件,也采用同样的方法,但在每个名字前还要添加一个c字母,例如stdio.h变成了cstdio、stdlib.h变成了cstdlib。

    C/C++头文件包含

    规则是:如果这个头文件是旧C++特有的,那么去掉h后缀,并放入std名字空间;如果这个头文件是C语言也有的,那么去掉h后缀,增加一个c前缀。 const关键字 在C/C++中,const关键字用于定义常量。例如,应该写成const...

    2作用域-------------21名字空间归类.pdf

    例如,你可以将每个模块的代码放入一个以模块名为前缀的名字空间中,如`project1::Foo`和`project2::Foo`,这样即使两个模块都定义了类`Foo`,也不会产生冲突。 2.1.1 匿名名字空间 匿名名字空间通常用于`.cc`实现...

    VC++头文件包含顺序

    7. **using声明与命名空间**:在包含头文件后,可以选择性地使用`using namespace`引入命名空间,但这样做可能会引发名字冲突。推荐在源文件的局部范围内使用,而不是在头文件中。 8. **包含路径**:正确配置包含...

    C++头文件问题.docx

    6. **名字空间和标准库**:C++标准库中的内容默认处于`std`名字空间中。为保持向后兼容,C++标准提供了无`.h`后缀的新头文件,如`<iostream>`代替`<iostream.h>`,这样可以直接使用`std::`前缀调用库函数,而无需...

    protobuf中的命名空间使用demo(C++)

    在C++代码生成后,`Person`类会被放在一个对应的命名空间中,如`mycompany::myapp`。 当你在其他.proto文件中引用这个消息类型时,需要使用完全限定的名称,即`mycompany.myapp.Person`。这有助于防止不同文件中的...

    利用命名空间来解决例程序名字冲突问题。

    通过这种方式,即使在不同的命名空间中有同名的实体,它们之间也不会发生冲突。 #### 示例分析 根据给定的代码示例,我们可以看到两个头文件`header1.h`和`header2.h`中都定义了一个名为`Student`的类以及一个名为...

    常用工具封装成的头文件 C++

    同时,考虑使用命名空间(namespace)来避免名字冲突,如`namespace MyTools`,并在使用时使用`using namespace MyTools;`。 总的来说,将常用工具封装成C++头文件,不仅可以提升代码质量,还能提高开发效率,使...

    C语言头文件#includeunistd.h的作用

    `<unistd.h>` 是一个广泛应用于 Unix 及其衍生系统(如 Linux)中的头文件。尽管它的名字可能让人误以为它是 C 语言的一部分,但实际上,它属于 Unix 和类 Unix 操作系统特有的 API(应用程序编程接口)。此头文件...

    缺失db2头文件,如sqladef.h等文件

    在编程和数据库开发中,头文件(.h 文件)扮演着至关重要的角色,它们包含了函数声明、数据结构定义以及常量和枚举等预编译信息。DB2 是 IBM 提供的一款强大的关系型数据库管理系统,它广泛应用于企业级的数据存储和...

    万能头文件#include“bitsstdc++.h” (2).pdf

    `可能会导致意外的行为,因为`std`空间内的所有名字都被引入了全局作用域。因此,在实际开发中,建议避免使用`using namespace`,除非在非常小的代码块内。 总结来说,`#include <bits/stdc++.h>`虽然在编程竞赛或...

    cpp代码-c++ 头文件

    C++中的命名空间(namespace)用于避免不同库之间的名字冲突。头文件中可能会定义或使用命名空间,如: ```cpp namespace MyLibrary { // 函数和类的声明 } ``` 6. **模板**: 当需要编写泛型代码时,模板在...

    C++ std命名空间 (2).pdf

    例如,假设在`x.h`和`y.h`中分别定义了一个名为`MyClass`的类,那么在`z.cpp`中引入这两个头文件并使用它们时,需要明确指出使用哪个命名空间中的`MyClass`: ```cpp #include "x.h" #include "y.h" void z::f() {...

Global site tag (gtag.js) - Google Analytics