从C到C++——《C++语言的设计和演化》读书笔记(3)

王朝c/c++·作者佚名  2006-01-31
窄屏简体版  字體: |||超大  

从C到C++

—《C++语言的设计和演化》读书笔记(3)

不能说哪种语言取代了哪种语言,只是一种新语言的出现必然伴随着她的新的特征。从C到带类的C,再到C++,逐渐形成了一些新的语言特征:

1.虚函数

让C++高度抽象成为现实。也就是说我们不必关心派生类真正要去做的是什么事情,我们在父类中只定义了函数接口,把具体实现延迟到派生类中。这样做的好处是显而易见的,就像书中提到的一个例子:父类中定义了一个接口draw(),以后不管派生类要怎么“画”,只要在派生类内部定义了draw(),指定了自己“画”的行为,就可以沿着继承的层次关系找到派生类的draw(),尽管表面上看是调用父类的draw()。这样就能通过使用虚函数实现模块化。坏处就是使编译器的实现越来越困难了,其生成的代码也会变的相对庞大,以及效率上的影响。

2.重载

重载让语言变的简洁。一是使一些有相同含义的函数可以以相同的名字出现,区别就在于参数和返回类型;二是使用户自定义类型可以模拟内建类型的操作方式。在效率上,似乎对我们来说没什么影响:)

3.常量

尽量用const和inline而不用#define,这就是C++与C的区别。为什么要这样?我想<<Effective C++>>中条款1已经说的很清楚了。

4.存储管理和类型检查

这些都使得C++更加安全,<<Effective C++>>也有关于这两方面的论题。

5.声明语句

我觉得这是一个很大的改进,尽管Bjarne认为这是次要特征。学习C语言是,总是为变量没有声明而再回到函数开头去声明变量。关键还在于对临时变量空间的回收,这点好象在林锐博士写的<<高质量C++编程指南>>中提到过。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航