标签:
std是标准命名空间名称
相同点:
std::和using namespace std;的意思是一样的,都表示使用命名空间std;
不同点:
放在程序中的位置不同
1. using namespace std;头文件如果包含了#include<iostream>,那么在头文件下方写上using namespace std;2.std::头文件如果包含了#include<iostream>,但是没有在头文件下方写上using namespace std;那么在使用标准输入流时就需要加上std::比如std::cout std:: string str; std:: cin 等,否则会报错
也就是说使用了“using namespace std;”就没必要使用“std::”了,一般情况下两者有其一就可以了
那么,为什么有这两种用法的区别了?因为,对于命名空间,是可以自定义的,除了那些默认的自带的命名空间,我们可以更改也可以自定义,想用哪一个的时候就用哪个比如我命名了一个命名空间为cc,
namespace cc
{
fun();
}
那么我用这个命名空间时就用cc:: fun() ,
当然也可以是:
using namespace cc;
fun();
以代码佐证:
//std:: 和using namespace std;
#include "stdafx.h"
#include <iostream>
using namespace std ;
namespace namespace1
{
void welcome();
}
namespace namespace2
{
void welcome();
}
void global_welcome();
int main(int argc, char* argv[])
{
{
// using namespace namespace2 ;
//使用namespace2、std、全局三个命名空间
namespace2:: welcome();
}
{
using namespace namespace1 ;
//使用namespace1、std、全局三个命名空间
welcome();
}
global_welcome();
//使用了std和全局两个命名空间
return 0 ;
}
namespace namespace1
{
void welcome()
{
cout<<"Welcome from namespace1.\n" ;
}
}
namespace namespace2
{
void welcome()
{
cout<<"Welcome from namespace2.\n" ;
}
}
void global_welcome()
{
cout<<"GlobalWelcom!\n" ;
}
运行结果是:
标签:
原文地址:http://www.cnblogs.com/hhddcpp/p/4301481.html