using namespace std 和 include 的区别

本文详细解析了在C++中如何正确地使用std::string,包括如何避免命名空间冲突,以及如何通过using namespace std;声明来简化代码书写,并强调了其潜在的风险。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

using namespace std;
int main()
{
 std::string dd = "ddd";//会报错namespace "std" has no member "string",因为没有引入string库
}


#include<string>
int main()
{
    string  dd = "ddd"; //虽然编译单元包含了string,但是这个string还是找不到,因为string在std中,必须加std::才能找到string
    std::string dd = "ddd";//这样就不会报错了
}

#include<string>
using namespace std;//在这个域中用using声明了std::string
int main()
{
    string  dd = "ddd"; //string能找到了,这个string就是std::string
}


#include<iostream>
int main()
{
    std::string  dd = "ddd"; //不会报错,因为iostream里面include了string
}



总结:
#include <string>

就是将string库包含到当前编译单元中.

using namespace std;

1.尽量不要写using namespace std;因为随着项目的增大,会污染其他的文件,很难查出问题

因为使用using namespace std;的话就没有起到命名空间的作用。再次回到了如同没有涉及命名空间时,所有标示符都定义在全局作用于中的混乱情况,不利于程序员创建新对象。


2.如果,把using namespace std; 写在全局中.

就是将std里的所有名字暴露在当前编译单元的各个域中,

3.如果using std::string在单独的域中,就可以在该域中直接使用string, 少打std::了,比较方便
一个编译单元会有很多域...一般,这个只会出现在单独的域中

转载于:https://www.cnblogs.com/kevinWu7/p/10163533.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值