条款2:尽量用<iostream>而不用<stdio.h>
来源:互联网 发布:2017淘宝上传宝贝视频 编辑:程序博客网 时间:2024/05/26 14:10
scanf和printf很轻巧,很高效,你也知道怎么用它们。但尽管他们很有用,事实上scanf和printf及其系列还可以做些改进。尤其是,他们不是类型安全的,而且没有扩展性。
scanf/printf的弱点正式操作符>>和<<的强项:
int i;
Rational r; //r 是个有理数
cin>> i >> r;
cout << i << r;
上面的代码要通过编译,>>和<<必须是可以处理Rational类型对象的重载函数。如果没有实现这样的函数,就会出错。
另外,编译器自己可以根据不同的变量类选择操作符的不同形式,所以不必劳你去指定第一个要读写的对象是int而第二个是Rational。
另外,再传递读和写的对象时采用的语法形式相同,所以不必像scanf那样死记一些规定,比如如果没有得到指针,必须加上地址符,而如果已经得到了指针,又要确定不要加上地址符。这些完全可以交给C++编译器去做。
#include <iostream>
using namespace std;
class Rational
{
public:
Rational(int numerator = 0, int denominator = 1);
private:
int n; //分子
int d; //分母
friend ostream& operator<<(ostream& s, const Rational&);
};
Rational::Rational(int numerator, int denominator):n(numerator),d(denominator){}
ostream& operator<<(ostream& s,const Rational& r)
{
s<< r.n << '/' << r.d ;
return s;
}
int main()
{
Rational r(3,4);
cout << r << '\n';
}
第一:有些iostream的操作实现起来比相应的C stream效率要低,所以不同的选择会给你的程序有可能带来很大的不同。但,这不是对所有的iostream而言的,只是一些特殊的实现。
第二:再标准化的过程中,iostream库在底层做了很多修改,所以对那些要求最大可移植性的应用程序来说,会发现不同的厂商遵循标准的程度也不同。
- 条款2:尽量用iostream而不用stdio.h
- 条款2:尽量用<iostream>而不用<stdio.h>
- 条款2:尽量用<iostream>而不用<stdio.h>
- 尽量iostream用而不用stdio.h
- 尽量用<iostream>而不用<stdio.h>
- Effective C++ 条款2:尽量用iostream而不用stdio.h
- Effective C++学习笔记:条款2:尽量用<iostream>而不用<stdio.h>
- Effective C++:条款2:尽量用<iostream>而不用<stdio.h>
- 条款2:尽量用<iostream>而不用<stdio.h> [effective C++ 学习笔记]
- Effective C++学习笔记:条款2:尽量用iostram而不用stdio.h
- 条款2:尽量用而不用
- 从C转向C++:条款2:尽量用而不用
- 尽量以<iostream>取代<stdio.h>
- 条款1:尽量用const和inline而不用#define
- 条款1:尽量用const和inline而不用#define
- 条款1:尽量用const和inline而不用#define
- 条款1:尽量用const和inline而不用#define
- 条款1:尽量用const和inline而不用#define
- uva 301 Transportation 铁路公司的阳谋 纯dfs暴力
- 安装apk
- 讲义:第五项修炼(学习型组织的艺术与实践)
- 条款1:尽量用const和inline 而不用#define (第一章 从C转向C++)
- servlet/filter/listener/interceptor区别与联系
- 条款2:尽量用<iostream>而不用<stdio.h>
- DragonBones快速入门指南1
- TechNet Magazine VC++ 示例
- php mysql创建临时表
- POJ 1065 Wooden Sticks
- DragonBones快速入门指南2
- 条款3:尽量用new和delete而不用malloc和free
- 搞了一个独立博客,请各位光临pingworld.cn
- 用span实现空格的精确设定 空格