注册 登录
编程论坛 C++教室

关于新老版的C++程序请教,谢谢!

独孤小梦 发布于 2008-08-02 23:32, 918 次点击
先谢谢大家能看本人的帖,问题如下:
我在看C++的书时,怎么程序是这样的,
#include<iostream.h>
int add(int,int);
void main()
{
    int a,b;
    a=5;
    b=7;
    int c=add(a,b);
    cout<<"a+b="<<c<<endl;
}
int add(int x,int y)
{
    return x+y;
}
他们说这是老版本的,iostream.h这里带了.h

新版的:
#include<iostream>
using namespace std;
int add(int,int);
void main()
{
    int a,b;
    a=5;
    b=7;
    int c=add(a,b);
    cout<<"a+b="<<c<<endl;
}
int add(int x,int y)
{
    return x+y;
}
没有.h无法编译出来,要带了using namespace std;这个才行,不知道这个是什么意思?
我现在看的书上都带有.h,说明有点老了!我继续看这本书行吗?没有什么区别吧!
谢谢!
4 回复
#2
zjl1382008-08-02 23:51
建议使用iostream
后缀为.h的头文件c++标准已经明确提出不支持了,早些的实现将标准库功能定义在全局空间里,声明在带.h后缀的头文件里,c++标准为了和C区别开,也为了正确使用命名空间,规定头文件不使用后缀.h。

因此,当使用<iostream.h>时,相当于在c中调用库函数,使用的是全局命名空间,也就是早期的c++实现;当使用<iostream>的时候,该头文件没有定义全局命名空间,必须使用namespace std;这样才能正确使用cout。

还有建议这样写main()函数
int main()   //或int main(void)
{
   .......
   .......
   return 0;
}
#3
独孤小梦2008-08-03 00:16
恩,理解了!那么我可以继续看我的这本书吗?然后注意一下头文件就行?
还是书必须换一本?
#4
很远的那颗星2008-08-03 10:13
如果是初学,也不是说非换书不可,只是要注意一下自已的编码风格,多写一下代码,遇到不会或觉得自已写的不错的代码可以发到网上来,让大家帮你看一下.

记住多写,多问.但不要把太多时间花在论坛,自已多看书才能进步看.
#5
独孤小梦2008-08-03 21:49
呵呵,谢谢大家,现在知道怎么学了!非常感谢!
1