在C中使用命名空间指令的正确方法
发布时间:2020-12-16 07:24:28 所属栏目:百科 来源:网络整理
导读:在各种权威来源中,我看到了使用命名空间的各种方法. C标准没有关注命名空间的正确使用. 假设我们有以下代码: example.h文件 namespace Example { class MyClass { public: MyClass(); } } 以下是两种实施方式: example1.cpp #include "example.h"using nam
在各种权威来源中,我看到了使用命名空间的各种方法.
C标准没有关注命名空间的正确使用. 假设我们有以下代码: example.h文件 namespace Example { class MyClass { public: MyClass(); } } 以下是两种实施方式: example1.cpp #include "example.h" using namespace Example; MyClass::MyClass(); example2.cpp #include "example.h" namespace Example { MyClass::MyClass(); } 两个实现都在gcc中编译时没有警告,因此,它是代码纯度或美观的问题.但无论如何,这两种方法的优点和缺点是什么? 解决方法
这两个例子不一样:
第一个(使用命名空间Example;)将让编译器看到当前命名空间中所有使用的命名空间. (意味着除非与其他命名空间存在歧义,否则不需要指定命名空间) 第二个(名称空间示例{…})将向命名空间添加符号和代码.但是从名称空间外部看,它不会被视为当前名称空间中的名称空间. >您无需为当前命名空间声明使用. 例如: //consider the following namespace Namespace A { void f() { } } 从主要你有两个选择: 调用命名空间 int main() { A::f(); ... } 或添加使用和调用没有命名空间. using namespace A; int main() { f(); ... } 但是你不能将main添加到命名空间中,因为编译器找不到它: namespace A { int main() { f(); ... } } 会导致错误:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |