标签:语言 effective 55 编程 programming c++ C++ pass 函数
2020-03-26,开始学习effective C++,希望这自己能够坚持下去。
第一天
一、让自己习惯C++
条款01 视C++为一个语言联邦(View C++ as a federation of languages)
今天的C++已经是个多重范型编程语言( multiparadigm programming language), 一个同时支持过程形式(procedural)、面向对象形式(object-oriented)、函数形式(functional) 、泛型形式(generic) 、元编程形式( metaprogramming)的语言。
最简单的方法是将C++视为一个由相关语言组成的联邦而非单一语言。 在其某个次语言(sublanguage)中,各种守则与通例都倾向简单、直观易懂、并且容易记住。总共有4个:
(1)C。说到底C++仍是以C为基础。区块(blocks)、语句(statements)、预处理(preprocessor)、内置数据类型(build-in data types)、数组(arrays)、指针(pointers)等统统来自C。许多时候C++对问题的解法不过就是较高级的C解法。
(2)Object-Oriented C++。这部分也就是C with Classes所诉求的:classes(包括构造函数和析构函数),封装(encapsulation)、继承(inheritance)、多态(polymorphism)、virtual函数(动态绑定)…等等。
(3)Tesplate C++。这是C++的泛型编程(generic programming)部分。实际上由于templates威力强大,它们带来崭新的编程范型(programming paradigm),也就是所谓的template metaprogramming(TMP,模板元编程)。
(4)STL。是个template程序库。它对容器(containers)、迭代器(iterators)、算法(algorithms)以及函数对象(function objects)的规约有极佳的紧密配合与协调。
记住这四个次语言,当你从某个次语言切换到另一个,导致高效编程守则要求你改变策略时,不要感到惊讶。例如对内置(也就是C-like)类型而言pass-by-value通常比pass-by-reference 高效,但当你从C part of C++移往Object-Oriented C++,由于用户自定义( user-defined )构造函数和析构函数的存在,pass-by-reference-to-const往往更好。运用Template C++时尤其如此,因为彼时你甚至不知道所处理的对象的类型。
请记住
■C++ 高效编程守则视状况而变化,取决于你使用C++的哪一部分。
标签:语言,effective,55,编程,programming,c++,C++,pass,函数 来源: https://blog.csdn.net/Zhouzi_heng/article/details/115253961
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。