当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 12 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : g++ 编译的一点疑问
帖子发表于 : 2009-03-05 14:56 
头像

注册: 2005-07-14 20:31
帖子: 47
送出感谢: 0 次
接收感谢: 0 次
我初学c++,以前有一些java的基础,现在第一个hello world的程序就遇到了问题。
g++ hello.cpp -Wall -o xhello
第一个程序可以正常编译
第二个程序不能正常编译,显示找不到头文件,另外cout它也表示无法识别,为什么?
因为我自学的教程上都是第二个那样的程序,我如果弄不清楚,我真不知道该怎么学下去了。
我也不清楚std::的意思,只是我偶尔发现某网站有这个hello world 的程序,我一式发现可以用。

可以正常编译的
#include <iostream>
int main()
{
std:: cout <<"Hello World!\n";
return 0;
}

不能正常编译的
#include <iostream.h>
int main()
{
cout << "Hello World!\n";
return 0;
}


页首
 用户资料  
 
2 楼 
 文章标题 : Re: g++ 编译的一点疑问
帖子发表于 : 2009-03-05 15:00 
头像

注册: 2006-07-02 11:16
帖子: 12522
地址: 廣州
送出感谢: 0 次
接收感谢: 8
认真学 c++


_________________
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。


页首
 用户资料  
 
3 楼 
 文章标题 : Re: g++ 编译的一点疑问
帖子发表于 : 2009-03-05 15:04 
头像

注册: 2007-11-29 9:41
帖子: 8455
送出感谢: 0 次
接收感谢: 0 次
引用:
不能正常编译的
#include <iostream.h>
int main()
{
cout << "Hello World!\n";
return 0;
}

是旧的c++示例了,std::表明是名字空间。好好看看书先


页首
 用户资料  
 
4 楼 
 文章标题 : Re: g++ 编译的一点疑问
帖子发表于 : 2009-03-05 15:15 
头像

注册: 2008-08-29 21:31
帖子: 1051
送出感谢: 0 次
接收感谢: 2
C++标准库中的名字都是在一个叫std 的名字空间中声明的,cout就是在标准库中定义的名字,所以要用std::cout(加上std的前缀说明你使用的是标准的cout,而不是另外定义的cout),如果想简单地用cout,请在预处理器指示符后面加上: using namespace std;


_________________
。。。。。。。。。。。。。


页首
 用户资料  
 
5 楼 
 文章标题 : Re: g++ 编译的一点疑问
帖子发表于 : 2009-03-05 17:16 
头像

注册: 2005-07-14 20:31
帖子: 47
送出感谢: 0 次
接收感谢: 0 次
非常感谢大家的热心解答,
请问,那个头文件的区别
就是一个是iostream.h, 一个仅仅是iostream也是因为旧版本的问题吗?

另外,那个改命名空间的方法是在
#include <iostream>后面一行加上
#using namespace std; 吗?


页首
 用户资料  
 
6 楼 
 文章标题 : Re: g++ 编译的一点疑问
帖子发表于 : 2009-03-05 18:32 
头像

注册: 2008-08-29 21:31
帖子: 1051
送出感谢: 0 次
接收感谢: 2
至于头文件,我来举个例子,区别如下:
#include<iostream.h> //带.h后缀,这是旧的C++头文件,C++未标准化之前的头文件就是这样使用的(现在仍然可以用),这些头文件均不在namespace std中
#include<iostream> //不带后缀,这是标准的C++头文件,它们都在namespace std里面。
#include<string.h> //C库头文件,内容不在namespace std中。
#include<cstring> //C库头文件的C++名。C库头文件的C++名是以字母c开头,后面去掉了.h后缀的C名字,它们都在namespace std里面。
#include "stafx.h" //头文件名用“”括起来的,属于自定义头文件,不在namespace std中。
还有,using namespace std;是一条C++语句,前面不要加#号。


_________________
。。。。。。。。。。。。。


页首
 用户资料  
 
7 楼 
 文章标题 : Re: g++ 编译的一点疑问
帖子发表于 : 2009-03-05 18:33 
头像

注册: 2008-08-29 21:31
帖子: 1051
送出感谢: 0 次
接收感谢: 2
楼主你看的是什么C++教材?我记得C++ Primer里面对这些内容说得很详细的啊~~


_________________
。。。。。。。。。。。。。


页首
 用户资料  
 
8 楼 
 文章标题 : Re: g++ 编译的一点疑问
帖子发表于 : 2009-03-07 5:17 
头像

注册: 2005-07-14 20:31
帖子: 47
送出感谢: 0 次
接收感谢: 0 次
netphi:
非常感谢你的帮助,让我收益不少,

我是在ubuntuforums.org找到的一个帖子
http://ubuntuforums.org/showpost.php?p=1983565

里面有一个teach yourself C++的连接,号称21天学会C++,应该是入门
具体教程地址http://newdata.box.sk/bx/c/index.htm

你提到的C++ Primer是书,网站?


页首
 用户资料  
 
9 楼 
 文章标题 : Re: g++ 编译的一点疑问
帖子发表于 : 2009-03-07 9:26 
头像

注册: 2007-11-29 9:41
帖子: 8455
送出感谢: 0 次
接收感谢: 0 次
是书,经典教材


页首
 用户资料  
 
10 楼 
 文章标题 : Re: g++ 编译的一点疑问
帖子发表于 : 2009-03-07 10:24 
头像

注册: 2006-07-02 11:16
帖子: 12522
地址: 廣州
送出感谢: 0 次
接收感谢: 8
据闻 iostream.h 在最新版的 gcc 里面已经没有了 。。


_________________
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。


页首
 用户资料  
 
11 楼 
 文章标题 : Re: g++ 编译的一点疑问
帖子发表于 : 2009-03-07 11:59 
头像

注册: 2007-11-29 9:41
帖子: 8455
送出感谢: 0 次
接收感谢: 0 次
楼上,新版gcc那是多少版本啊?


页首
 用户资料  
 
12 楼 
 文章标题 : Re: g++ 编译的一点疑问
帖子发表于 : 2009-03-07 12:41 
头像

注册: 2008-07-14 22:42
帖子: 8078
地址: Beijing
送出感谢: 0 次
接收感谢: 0 次
lerosua 写道:
楼上,新版gcc那是多少版本啊?

引用:
poplar@poplar-gnome:~$ gcc --version
gcc (Ubuntu 4.3.3-5ubuntu1) 4.3.3
Copyright © 2008 Free Software Foundation, Inc.
本程序是自由软件;请参看源代码的版权声明。本软件没有任何担保;
包括没有适销性和某一专用目的下的适用性担保。

:em06


_________________
Ubuntu User


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 12 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 1 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译