C++语言的设计与演化 读书笔记一

前言

       C++语言和造就它的设计思想、编程思想本身并不会演化。真正演化的是C++用户们对实际问题的理解,以及他们对于为了帮助解决这些问题而需要的工具的理解。

 

P33

       默认参数表是很晚才加到类机制里的,加上它是为了抑制一类情况:为了将关于对象作为函数的参数或者为了处理实际是其他类的成员的类对象,或者是为了处理其类的参数。这些情况下都有可能出现大量完全相同的“标准参数”。在这些情况中提供参数表已经被证明是很讨厌的事情,为了避免这种情况就需要另外引进一种“特征”它能用于把class对象的声明变得更简洁些,更像struct声明。

 

P82

       如果这种语言能在编译时确认所哟哟违反类型系统的请款,那么它就是强的静态类型的。

 

P86

       为了继承成为一种可行的程序设计语言C++必须保持C语言的那种直接访问硬件控制数据布局的能力,包邮那些能够以一对一的风格直接映射到硬件的基本操作的数据结构。

 

P106

       变量生存期规则

Void f(string s1, string s2)

{

       Printf(“%s”, s1+s2); //ok

       Const char *p = s1+s2;

       Printf(“%s”, p); //won’t work temporary destoryed

       String s3 = s1+s2;

       Printf(“%s”, s3); //ok

       Cout << s3 ; //ok

       Cout << s1+s2; //ok

}

 

P114

       有些机构建议了一种风格,在头文件里使用“长而富含信息的”参数名,而在函数的实现中使用“短而方便的”名字。如:

 Void reverseint *elements int length_of_element_array;

 

实现函数

Void reverse(int *val, int len)

{

······

}

这是一种我比较喜欢的方式,虽然其他人不太赞成。

 

P124

       几年之后逐渐呈现出了一种方式:首先强调一些概念随后在强调概念之间的关系和已需要语言特征。把各个单独语言特征细节先放下,知道人们需要知道的时候再去学习。

 

P128

       在学习C++时,最根本的应该是牢记关键性的设计概念,使自己不在语言的技术细节中迷失了方向。如果能做到这一点,学习和使用C++就会使非常有趣的和收效显著的。与C比较用一点点C++就可能带来许多收获,在理解数据抽象和面向对象技术方面付出进一步努力将能得到更多的收获。

版权声明:本文为博主原创文章,未经博主允许不得转载。

原文地址:https://www.cnblogs.com/ubuntuvim/p/4796576.html