博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C++:命名空间
阅读量:3948 次
发布时间:2019-05-24

本文共 1773 字,大约阅读时间需要 5 分钟。

1,命名空间简介

命名空间随标准C++而引入,相当于一个灵活的文件域(全局域),以关键字namespace开头给其起个名字,并用大括号把定义区域括起来(声明块)。

在域外使用域内成员时,需要加上命名空间名作为前缀,再加上域操作符“::”,可以使用嵌套定义。

如果在关键字namespace之前使用using,就不必使用限定修饰名,即可以一次性使命名空间中所有成员都可以直接被使用。

标准C++库中所有组件都在std的命名空间中声明和定义的,在标准C++平台调用如下语句:

using namespace std;

便可直接使用标准C++库中所有成员,注意:如果使用命名空间std,则#include编译预处理命令包含头文件时,必须去掉扩展名(.h)。

2,常见问题分析
2.1 使用标准C++命名空间std时,加载头文件:

错误代码:

#include
using namespace std;void main(){ cout<<"Hello,world!"<

错误 1 error C1083: 无法打开包括文件:“iostream.h”: No such file or directory c:\users\dell\documents\visual studio 2012\projects\project\project\code1.cpp 1 1 Project

分析:

在标准C++命名空间std,<iostream.h>和不同,C++标准明确提出不支持后缀为(.h)的头文件(为了与C区别和正确使用命名空间)。

正确代码:

#include
using namespace std;void main(){ cout<<"Hello,world!"<

2.2 命名冲突:

错误代码:

#include"class1.h"#include"class2.h"#include
using namespace std;void main(){ MyClass x; MyClass y; x.Info(); y.Info(); getchar();}//class1.h#include
using namespace std;class MyClass{public: void Info() { cout<<"头文件class1.h"<
using namespace std;class MyClass{public: void Info() { cout<<"头文件class2.h"<

错误 1 error C2011: “MyClass”:“class”类型重定义 c:\users\dell\documents\visual studio 2012\projects\project\project\class2.h 4 1 Project

分析:

class1.h和class2.h头文件都定义了类MyClass,导致名字冲突,编译器认为MyClass被重复定义。解决办法之一改动其中一个类名,之二在class1.h和class2.h头文件中都引入namespace。

正确代码:

#include"class1.h"#include"class2.h"#include
using namespace std;void main(){ MyNamespace1::MyClass x; MyNamespace2::MyClass y; x.Info(); y.Info(); getchar();}//class1.h#include
using namespace std;namespace MyNamespace1{class MyClass{public: void Info() { cout<<"头文件class1.h"<
using namespace std;namespace MyNamespace2{class MyClass{public: void Info() { cout<<"头文件class2.h"<

转载地址:http://vahwi.baihongyu.com/

你可能感兴趣的文章
你害怕创新吗
查看>>
创新服务的七要素
查看>>
虚伪的奉承也有效
查看>>
蒂姆·库克的五项核心领导力
查看>>
你为何没有成为领导者
查看>>
一切悲剧都源于不当激励
查看>>
别把用户的高期望混同于好体验
查看>>
动机和机会:推动商业发展的引擎
查看>>
4个信号表明你是一个失败的领导
查看>>
成功谈判 你需要几个锦囊?
查看>>
一个人的宽度决定了他的高度
查看>>
善于拜访是另一种经营智慧
查看>>
打造新老员工双赢机制变对立为统一
查看>>
企业如何避免用错人
查看>>
打掉苹果“无与伦比”的傲慢(人民时评)
查看>>
Creating an Android Project
查看>>
Running Your App (android)
查看>>
Starting Another Activity
查看>>
Starting an Activity
查看>>
Stopping and Restarting an Activity
查看>>