C++学习笔记(1):命名空间与头文件
来源:互联网 发布:帝国cms仿站视频下载 编辑:程序博客网 时间:2024/05/18 01:56
一、C++的命名空间由来及作用
C++中,除了C++标准库之外,还存在一些公司为实现某些强大的功能封装了特定函数的非标准库(比如微软的MFC) ,所以c++变得更加强大,不仅可以直接调用标准库,还能调用别的公司封装好的库。但是,标准库与非标准库之间可能出现函数命名冲突的情况,因此就使用命名空间来标识某个函数是来自哪个库(某个库中的函数都定义在一个命名空间里面,如标准库定义在std命名空间里面)。
二、C++标准头文件
C++因为有了命名空间这一概念,导致传统C++下代码出现不兼容的问题(传统C++没有命名空间这一概念),所以C++标准委员针对这一现象制定了不带“.h”的标准C++头文件(如“iostream”头文件),替换传统C++带“.h”的头文件(如“iostream.h”),同时对于C头文件继续支持,不过将其改造为带“c”前缀的头文件(如“cStream”)。但是,尽管如此,传统C++的头文件还是可以非法使用。
三、头文件使用#ifdef预编译指令防止被多次包含
尽管函数与变量允许多次声明(头文件被重复包含就会出现重复声明),但这势必会使得编写的程序冗余臃肿,因此,有必要使用
#ifndef WHAT#define WHAT#endif这一套预编译指令来防止头文件被多次包含的情况出现。
四、函数与变量的定义不能放在头文件内
头文件中尽量不要进行函数与变量的定义,防止重复定义。详细参考注意头文件规则,避免链接错误:重复定义(multiple defination)。
参考资料:
http://blog.csdn.net/u013162593/article/details/22823425
http://blog.csdn.net/phenixyf/article/details/46873483
https://zybuluo.com/uuprince/note/81709
http://www.360doc.com/content/10/0822/21/2869050_48013350.shtml
- C++学习笔记(1):命名空间与头文件
- 头文件iostream与命名空间namespace
- 命名空间与头文件的关系
- 头文件与命名空间的关系
- 重载与命名空间(学习笔记)
- ROS进二阶学习笔记(5)- 命名与命名空间
- 命名空间和头文件(转)
- 文件头定义命名空间
- Spring schema与命名空间(学习笔记)
- 学习笔记----命名空间
- 命名空间学习笔记
- 头文件、预处理命令、命名空间(作用域)、链接
- 关于头文件和命名空间
- C++ 头文件和命名空间
- c++命名空间及头文件
- C++命名空间和自定义头文件
- C++ 命名空间std 和 头文件
- 关于头文件和命名空间
- MS SQL Server Management Studio2016(SSMS2016)安装失败 拒绝访问(0x80070005)
- 将svn中的部分功能集成到Unity中
- 全志A33添加开机启动脚本
- 抽象类的作用
- android 通知栏NotificationManager及自定义通知栏Notification的使用
- C++学习笔记(1):命名空间与头文件
- Struts.xml配置文件详解
- 带着一群小朋友玩Linux
- 用Python写网络爬虫系列(三)表单处理
- POJ 2342 Anniversary party (树形dp)
- QQ18年,解密8亿月活的QQ后台服务接口隔离技术
- 将Eclipse Android项目打包成APK文件
- 2017-2-15 阶段性总结
- 转载:在Tomcat中部署项目的几种方法