社区
C语言
帖子详情
买了<>的朋友请进!!!
Zenki
2001-10-20 07:17:55
书中的代码我有几处不明,请大家帮我一把!!
#include <iostream>为何不是#include <iostream.h>
还有以下又是什么意思???
using namespace std;
...全文
85
6
打赏
收藏
买了<>的朋友请进!!!
书中的代码我有几处不明,请大家帮我一把!! #include 为何不是#include 还有以下又是什么意思??? using namespace std;
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Zenki
2001-10-21
打赏
举报
回复
OK,埋单了
Zenki
2001-10-21
打赏
举报
回复
为何不能给分,没有力给分的超连结???
luhao
2001-10-20
打赏
举报
回复
是名称域的意思
将类名封装,防止重名
在《EFFECTIVE C++》中有解释
在论坛的其他的帖中也有解释
原文如下:
条款2:尽量用<iostream>而不用<stdio.h>
是的,scanf和printf很轻巧,很高效,你也早就知道怎么用它们,这我承认。但尽管他们很有用,事实上scanf和printf及其系列还可以做些改进。尤其是,他们不是类型安全的,而且没有扩展性。因为类型安全和扩展性是C++的基石,所以你也要服从这一点。另外,scanf/printf系列函数把要读写的变量和控制读写格式的信息分开来,就象古老的FORTRAN那样。是该向五十年代说诀别的时候了!
不必惊奇,scanf/printf的这些弱点正是操作符>>和<<的强项:
int i;
Rational r; // r 是个有理数
...
cin >> i >> r;
cout << i << r;
上面的代码要通过编译,>>和<<必须是可以处理Rational类型对象的重载函数(可能要通过隐式类型转换)。如果没有实现这样的函数,就会出错(处理int不用这样做,因为它是标准用法)。另外,编译器自己可以根据不同的变量类型选择操作符的不同形式,所以不必劳你去指定第一个要读写的对象是int而第二个是Rational。
另外,在传递读和写的对象时采用的语法形式相同,所以不必象scanf那样死记一些规定,比如如果没有得到指针,必须加上地址符,而如果已经得到了指针,又要确定不要加上地址符。这些完全可以交给C++编译器去做。编译器没别的什么事好做的,而你却不一样。最后要注意的是,象int这样的固定类型和象Rational这样的自定义类型在读写时方式是一样的。而你用sacnf和printf试试看!
你所写的表示有理数的类的代码可能象下面这样:
class Rational {
public:
Rational(int numerator = 0, int denominator = 1);
...
private:
int n, d; // 分子,分母
friend ostream& operator<<(ostream& s, const Rational& r);
};
ostream& operator<<(ostream& s, const Rational& r)
{
s << r.n << '/' << r.d;
return s;
}
上面的代码涉及到operator<<的一些微妙(但很重要)的用法,这在本书其他地方详细讨论。例如:上面的operator<<不是成员函数(条款19解释了为什么),而且,传递给operator<<的不是Rational对象,而是定义为const的对象的引用(参见条款22)。operator>>的声明和实现也类似。
尽管我不大愿意承认,可有些情况下回到那些经过证明而且正确的老路上去还是很有意义的。第一,有些iostream的操作实现起来比相应的C stream效率要低,所以不同的选择会给你的程序有可能(虽然不一定,参见条款M16)带来很大的不同。但请牢记,这不是对所有的iostream而言,只是一些特殊的实现;参见条款M23。第二,在标准化的过程中,iostream库在底层做了很多修改(参见条款49),所以对那些要求最大可移植性的应用程序来说,会发现不同的厂商遵循标准的程度也不同。第三,iostream库的类有构造函数而<stdio.h>里的函数没有,在某些涉及到静态对象初始化顺序的时候,如果可以确认不会带来隐患,用标准C库会更简单实用。
iostream库的类和函数所提供的类型安全和可扩展性的价值远远超过你当初的想象,所以不要仅仅因为你用惯了<stdio.h>而舍弃它。毕竟,转换到iostream后,你也不会忘掉<stdio.h>。
顺便说一句,本条款的标题没有打印错;我确实说的是<iostream>而非<iostream.h>。从技术上说,其实没有<iostream.h>这样的东西——标准化委员会在简化非C标准头文件时用<iostream>取代了它。他们这样做的原因在条款49进行了解释。还必须知道的是,如果编译器同时支持 <iostream>和<iostream.h>,那头文件名的使用会很微妙。例如,如果使用了#include <iostream>, 得到的是置于名字空间std(见条款28)下的iostream库的元素;如果使用#include <iostream.h>,得到的是置于全局空间的同样的元素。在全局空间获取元素会导致名字冲突,而设计名字空间的初衷正是用来避免这种名字冲突的发生。还有,打字时<iostream>比<iostream.h>少两个字,这也是很多人用它的原因。:)
SauMa
2001-10-20
打赏
举报
回复
呵呵,今天才买的,还没来得及看
fiddleman
2001-10-20
打赏
举报
回复
<iostream>的功能比<iostream.h>的更强大
况且<iostream.h>已不在C++标准之内
对于 using namespace std; 书中有解释的
sherlockq
2001-10-20
打赏
举报
回复
这个。。。。先看看thinking in cpp吧
第一个两者一般情况下是等价的,cpp的库可以省略.h
第二个是使用名字空间。
namespace std{
class a{};
void b(){};
}
void main(){
using namespace std;
a impA;
b();
}
基本就绛紫了,不过可能会碰到冲突。。。
C++
程序设计之四书五经
C++
程序设计之四书五经 [转]
转自:http://www.royaloo.com/index.html
作者:荣耀
C++
程序设计之四书五经(上篇)
C++
是一门广泛用于工业软件研发的大型语言。它自身的复杂性和解决现实问题的能力,使其极具学术研究价值和工业价值。和C语言一样,
C++
已经在许多重要的领域大获成功。
然而,一个不可否认的现实是,在低阶程序设计领域,
C++
挤压着C同时也在承受着C的强烈反
CSDN 推荐
C++
教程
CSDN 推荐
C++
教程 收藏
转自CSDN
推荐
C++
教程
1. < C++ Programming Language> > , Bjarne Stroustrup
这是一本每个人都应该
买
但不一定要看的书,强烈建议初学者不要看这本书,否则可能会一头雾水,失去信心,BS写书本来就不怎么样,他自己都说他的书有些晦涩难懂,但是
买
一本放在书柜里,有什么不清楚的地方查查高人如何解析还是有必要的。中
C++
学习笔记二——利用基本知识点编写小程序
今天
买
的E
SSe
ntial
C++
这本书到了,粗略学习了第一章,主要回顾了几个重要的知识点,下面将介绍今天学习的内容。 自己编写了一个小程序,里面包含了
C++
一些知识点的基本使用,可以当做一个小例子练手。 该程序主要实现以下功能: 1)创建了斐波那契数列等一系列其他数列,显示其中的两个数,用户填写第三个数。 2)判断用户的数据是否正确,并询问用户是否愿意继续填写数据。 3)将用户的成绩按照名字存放在TXT文件中,如果想要查询成绩则输入名字进行查询。 以下是代码: # include <iostrea
C/
C++
学习好书推荐 (1/2)
版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
http://1001night.blogbus.com/logs/17124663.html
能推荐几本好书么
当然,FAQ的目的之一就是这个。我将分别介绍纯C、
C++
以及widows编程、数据结构算法以及图形库等等的教材。市场上这些主题中任意一个的教材都是汗牛充栋,读都读不完。不过很显然,大家都公认的经典,也只是那么寥寥数本而已。下面推荐的都是这样的著作,当然总是
【转载】
C++
程序设计之四书五经/
C++
学习书籍介绍
From http://www.cnblogs.com/Anline/archive/2005/02/25/109144.html
C++
是一门广泛用于工业软件研发的大型语言。它自身的复杂性和解决现实问题的能力,使其极具学术研究价值和工业价值。和C语言一样,
C++
已经在许多重要的领域大获成功。
然而,一个不可否认的现实是,在低阶程序设计领域,
C++
挤压着C同时也在承受着C的强烈反弹,而在高阶程序设计领域,Java和C#正在 不断蚕食着
C++
的地盘
C语言
70,032
社区成员
243,245
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章