码迷,mamicode.com
首页 > 其他好文 > 详细

std::和using namespace std;

时间:2015-02-26 16:26:46      阅读:173      评论:0      收藏:0      [点我收藏+]

标签:

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" ;
}

 

  

 

运行结果是:

技术分享





std::和using namespace std;

标签:

原文地址:http://www.cnblogs.com/hhddcpp/p/4301481.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!