对 #include <iostream.h>非标准输入输出流
#include <iostream>标准输入输出流
C++中为了避免名字定义冲突,特别引入了“名字空间的定义”,即namespace。当代码中用<iostream.h>时,输出可直接引用cout<<x;//<iostream.h>继承C语言的标准库文件,未引入名字空间定义,所以可直接使用。当代码中引入<iostream>时,输出需要引用std::cout<<x;如果还是按原来的方法就会有错。使用<iostream>时,引入std::有以下方法:
1.using namespace std;
cout<<x;
2.using std::cout;的如同全局变量和局部变量一样的用法,
cout<<x;
3.最基本的std::cout<<x;
这回你该知道为什么通常用#include <iostream>时,要用using namespace std;了吧。如果你不用这个,就要在使用cout时,用后两种方法了。其他头文件也是同样的道理。
#include <iostream>标准输入输出流
C++中为了避免名字定义冲突,特别引入了“名字空间的定义”,即namespace。当代码中用<iostream.h>时,输出可直接引用cout<<x;//<iostream.h>继承C语言的标准库文件,未引入名字空间定义,所以可直接使用。当代码中引入<iostream>时,输出需要引用std::cout<<x;如果还是按原来的方法就会有错。使用<iostream>时,引入std::有以下方法:
1.using namespace std;
cout<<x;
2.using std::cout;的如同全局变量和局部变量一样的用法,
cout<<x;
3.最基本的std::cout<<x;
这回你该知道为什么通常用#include <iostream>时,要用using namespace std;了吧。如果你不用这个,就要在使用cout时,用后两种方法了。其他头文件也是同样的道理。
C++标准库中中的所有标识符都被定义于一个名为std的namespace中。如同名字一样的意思,NameSpace(名字空间),之所以出来这样一个东西,是因为人类可用的单词数太少,并且不同的人写的程序不可能所有的变量都没有重名现象,对于库来说,这个问题尤其严重,如果两个人写的库文件中出现同名的变量或函数(不可避免),使用起来就有问题了,为了解决这个问题,引入了名字空间这个概念,通过使用 namespace xxx;你所使用的库函数或变量就是在该名字空间中定义的,这样一来就不会引起不必要的冲突了
。(也即是说,namespace相当于大库中的小库),使用时,
如同全局变量和局部变量一样的用法:
#include <iostream>
using namespa的如同全局变量和局部变量一样的用法,ce std ;
namespace savitch1
{
void greeting();
}
namespace savitch2
{
void greeting();
}
void big_greeting();
int main()
{
{
using namespace savitch2 ;
//使用savictch2、std、全局三个命名空间
greeting();
}
using namespa的如同全局变量和局部变量一样的用法,ce std ;
namespace savitch1
{
void greeting();
}
namespace savitch2
{
void greeting();
}
void big_greeting();
int main()
{
{
using namespace savitch2 ;
//使用savictch2、std、全局三个命名空间
greeting();
}
{
using namespace savitch1 ;
//使用savitch1、std、全局三个命名空间
greeting();
}
big_greeting();
//使用了std和全局两个命名空间
return0 ;
}
namespace savitch1
{
void greeting()
{
cout<<"Hellofromnamespacesavitch1.\n" ;
}
}
namespace savitch2
{
void greeting()
{
cout<<"Greetingsfromnamespacesavitch2.\n" ;
}
}
void big_greeting()
{
cout<<"ABigGlobalHello!\n" ;
}