C++命名空间和头文件的关系 例如已经使用了#include<string>,为什么还要 using std::string?

(1)如果C++程序中使用了带后缀".h"的头文件,那么不必在程序中声明命名空间,只需要文件中包含头文件即可;(2)C++标准要求系统提供的头文件不带后缀".h",但为了表示C++与C的头文件既有联系又有区别,C++中所用头文件不带后缀".h",而是在C语言的相应头文件名之前加上前缀c:

(3)自定义的头文件通常带后缀“.h",系统标准库文件不带后缀“.h"。

(4)因为标准库非常的庞大,所程序员在选择的类的名称或函数名时就很有可能和标准库中的某个名字相同。所以为了避免这种情况所造成的名字冲突,就把标准库中的一切h标识符都被放在名字空间std中。

(5)answer:如果不使用using std::string,就在程序中使用string 类型变量,程序不能识别是标准库中的string 变量。因为程序自定义头文件中也可能含有string变量。所以一定要声明using std::string。这样程序里面的string类型变量就都是std标准库中的string变量了。

时间: 2024-10-29 13:18:17

C++命名空间和头文件的关系 例如已经使用了#include<string>,为什么还要 using std::string?的相关文章

自动编译Makefile,原版升级版,支持自动推倒头文件依赖关系、创建目标路径

################################################################################### # 简易多模块程序自动编译/清除Makefile v2.0 #简介: 自动编译.清除功能,不需要每次编译输入gcc或者rm指令 #使用方法: 先配置Makefile中的配置项.目标名称等,然后在终端执行make即可 # #使用说明:1. 本Makefile可以自动推倒源程序与头文件之间的依赖关系,并生成.depend文件 # 2.

C++定义自己的命名空间和头文件

下面的例子演示如何使用一个简单的演示空间和自己的头文件定义.码如下面: compare.h: namespace compare{ double max(const double* data,int size); double min(const double* data,int size); } compare.cpp: #include "compare.h" double compare ::max(const double* data,int size){ double res

(转) [C++]我再也不想在任何头文件中看到using namespace xxx这种句子了(译)

原文的传送:I don’t want to see another “using namespace xxx;” in a header file ever again 转自  http://blog.csdn.net/pleasecallmewhy/article/details/8528702     在这里,我毫不回避地说了这句话. 作为一个开发者/团队领导者,我经常会去招聘新的项目成员,有时候也帮助其他组的人来面试应聘者.作为应聘流程之一,我经常要求应聘者写一些代码,因此我检查过相当多的

Makefile自动生成头文件依赖

前言 Makefile自动生成头文件依赖是很常用的功能,本文的目的是想尽量详细说明其中的原理和过程. Makefile模板 首先给出一个本人在小项目中常用的Makefile模板,支持自动生成头文件依赖. CC = gcc CFLAGS = -Wall -O INCLUDEFLAGS = LDFLAGS = OBJS = seq.o TARGETS = test_seq .PHONY:all all : $(TARGETS) test_seq:test_seq.o $(OBJS) $(CC) -o

预处理命令(宏定义,条件编译,头文件)

宏定义 <1>不带参数宏定义:#define PI 3.1415926 <2>带参数的宏定义: #define PI  3.1415926 #define S(r)  (PI*(r)*(r)) void main(){float  a=2,area;area=S(a); } 用宏可以得到几个结果: #define CIRCLE(R,L,S,V)  L=2*PI*(R);S=PI*(R)*(R);V=4.0/3.0*PI*(R)*(R)*(R) void main(){float r

如何MSHTML命名空间解析HTML文件(MSHTML::IHTMLDocument2Ptr 提示错误)

1.创建Win32或MFC工程. 2.在预编译或需要使用MSHTML命名空间的头文件中添加以下语句: #include <atlbase.h>    #include <Mshtml.h> #import <mshtml.tlb> 3.前置条件设置完成,现在可以开始使用MSHTML访问里面的智能指针了. 例: MSHTML::IHTMLDocument2Ptr pHTMLDoc2; MSHTML::IHTMLDocument3Ptr pHTMLDoc3; …… 然后解析

GCC、头文件查找顺序总结

GCC笔记 The History of GCC -------------------------------------------------------------------------------- 1984年,Richard Stallman发起了自由软件运动,GNU (Gnu's Not Unix)项目应运而生,3年后,最初版 的GCC横空出世,成为第一款可移植.可优化.支持ANSI C的开源C编译器. GCC最初的全名是GNU C Compiler,之后,随着GCC支持的语言越

strings.h 与 string.h 头文件的区别

今天使用 man string 来查看 string 文件的使用的方法(毕竟里面的函数名字和传入参数和发挥参数的类型,如果一段时间不使用,会产生遗忘.) 偶然发现,string.h 的man page 中 出现了 strings.h 的说明.这引起的我的好奇,很奇怪这个strings 和 string 之间的关系.我上网搜了几个帖子,他们写的不够清楚,今天我进行重新整理一下吧: 首先我们看一下man string 里面的内容: 可见,strings 头文件中包含了部分函数,没有在 string.

C ++头文件的十大错误,如何解决这些问题

Top 10 C++ header file mistakes and how to fix them C++ header files is a rather mundane topic by most standards. Talking about header files is not as interesting as discussing complex search algorithms or debating design patterns . It’s not an acade