Effective C++学习笔记:条款2:尽量用iostram而不用stdio.h
2008-01-15 21:13
363 查看
传统的C函数库中scanf和printf不是类型安全的,另外,scanf/printf系列函数把要读写的变量和控制读写格式的信息分开来,这都是很早的用法啦。iostream的cout和cin则相对高级的多!因为类型安全和扩展性是C++的基石,“《”和“》”也提供操作符重载来输出、输入用户自己定义的数据类型,另外,在传递读和写的对象时采用的语法形式也是相同的。
如:
如:
classRational{ public: Rational(intnumerator=0,intdenominator=1); ... private: intn,d;//分子,分母 friendostream&operator<<(ostream&s,constRational&);};ostream&operator<<(ostream&s,constRational&r){ s<<r.n<<'/'<<r.d; returns;}
但是下列情况下会使用C库函数:
(1)有些iostream的操作实现起来比相应的Cstream效率要低,所以不同的选择会给你的程序有可能带来很大的不同。
(2)在标准化的过程中,iostream库在底层做了很多修改,所以对那些要求最大可移植性的应用程序来说,会发现不同的厂商遵循标准的程度也不同。
(3)iostream库的类有构造函数而里的函数没有,在某些涉及到静态对象初始化顺序的时候,如果可以确认不会带来隐患,用标准C库会更简单实用。
使用了#include,得到的是置于名字空间std下的iostream库的元素;如果使用#include,得到的是置于全局空间
的同样的元素。在全局空间获取元素会导致名字冲突,而设计名字空间的初衷正是用来避免这种名字冲突的发生。
使用了#include后面要接:usingnamespacestd;新的c++库舍弃了,你如果include它,编译器
会提示你找不到这个头文件。
相关文章推荐
- 条款2:尽量用<iostream>而不用<stdio.h> [effective C++ 学习笔记]
- Effective C++学习笔记:条款2:尽量用<iostream>而不用<stdio.h>
- 条款1:尽量用const和inline而不用#define [effective C++ 学习笔记]
- Effective C++学习笔记:条款3:尽量用new和delete而不用malloc和free
- Effective C++学习笔记:条款1:尽量用const和inline而不用#define
- Effective C++学习笔记:尽量用“传引用”而不用“传值”
- Effective C++学习笔记 条款02:尽量以const,enum,inline替换 #define
- Effective C++:条款2:尽量用<iostream>而不用<stdio.h>
- Effective C++ 条款2:尽量用iostream而不用stdio.h
- 27 尽量少做类型转换——effective c++学习笔记
- Effective C++学习笔记:尽量使用初始化而不要在构造函数里赋值
- Effective c++ 学习笔记——条款04:确定对象被使用前已先被初始化
- Effective C++学习笔记——条款03:尽可能使用const
- Effective c++学习笔记——条款10:令operator=返回一个*this的引用
- 《Effective C++ 》学习笔记-第六章 内存简单概念 以及 空类(empty class 条款39略微提到)
- Effective C++学习笔记——条款03:尽可能使用const
- Effective C++学习笔记 条款07:为多态基类声明virtual析构函数
- Effective c++学习笔记——条款11:在operateor=中自我赋值
- Effective C++阅读笔记_条款2:尽量以const,enum,inline替换#define
- effective C++ 条款 2:尽量用const和inline而不用#define