我是靠谱客的博主 从容悟空,最近开发中收集的这篇文章主要介绍2009.9.8笔记,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

关于以iostream 取代stdio.h?

 原因:1,scanf和printf不具备type-safe性质。

          2,不可扩充。

        这2点正是C++的基石之一。50年代的东西,是不是该被取代了呢?

但是,某些iostream的实现效率比不上对应的C Stream函数;标准化时iostream库在某些基本的地方做了修改,因此在大型应用程序的移植时,可能会发现不同的iostream版本支持不同的或近似的标准;iostream程序库中的classes有constructors,而stdio.h没有。

 

关于iostream.h 与iostream

#include<iostream> 取得的是隐藏于namespace std 内的iostream程序库元素。而iostream.h取得的是Global Scope中的元素,可能造成的后果是名字冲突,相反名字空间正式为了阻止此类事情发生而设计的。

 

关于operator<<,operator>>不是成员函数:为了支持混合操作(能和内建类型一起使用)。

 合法,但不合乎习惯

 左侧必须是类对象。

 

如果是成员函数:

     const Rational operator*(const Rational& rhs)const;

     result = onHalf *2;

     result = 2 * onHalf; //wrong

对应的函数形式: result = onHalf.operator*(2); //right

                          result  =2.perator*(onHalf);//wrong

That is because 只有参数能产生 implicit type conversion(隐式类型转换),但是member function所依附的对象(*this)并不能执行这种转换。under the condition that Non-explicit constructors)

     example :

               explicit Rational(int numerator = 0, int denominator = 1);

               result = onHalf * 2;  //wrong

如果是非成员函数则混合运算没有问题

    const Rational opertor*(const Rational& lhs,const Ratioal&rhs)

addition:   can operator* be a friend function of rational class?

   NO,operator * 完全可由Rational 的公开接口完成,只要能避免使用friend函数,就应该尽量避免。

 

关于如何在member function,non-member function,friend funciton的抉择

     1,虚拟函数必须是member function

     2, operator>>,operator<< 作为non-member function, if the function need to use the non-public members,consider it to be a friend!

     3,only non-member functions can implement implicit type convertion on the left argument,so if 左边的参数需要实施隐式类别转换,让它成为非成员函数,如果需要去用非成员函数,让它成为Friend!

 

关于以new,delete取代malloc and free

      simple:The latter knows nothing about constructors and destructors.

      new completes the location of storage and initionlization of object

      delete : destruct the object and free the storage

 

 

 

最后

以上就是从容悟空为你收集整理的2009.9.8笔记的全部内容,希望文章能够帮你解决2009.9.8笔记所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(47)

评论列表共有 0 条评论

立即
投稿
返回
顶部