视C++为一个语言联邦

来源:互联网 发布:猫池软件 编辑:程序博客网 时间:2024/06/04 19:06

视C++为一个语言联邦

简介

C++是个多重泛型编程语言,同时支持以下形式的语言:

1)过程形式;

2)面向对象形式;

3)函数形式;

4)泛型形式;

5)元编程形式。

理解C++的方法:将C++视为一个由相关语言组成的联邦而非单一语言。在其某个次语言中,各种守则与通例都倾向简单、直观易懂、并且容易记住。当从一个次语言移至另一个次语言,守则可能改变。下面主要介绍C++的主要次语言。

C

C++是以C为基础的。区块、语句、预处理、内置数据类型、数组、指针等都来自C。有时候C++问题的解法就是较高级的C解法。但是C++内的C成分存在局限,没有模板、没有异常、没有重载。

Object-Oriented C++

此语言主要包括Classes(包括构造函数和析构函数),封装,继承,多态,virtual 函数(动态绑定)等等。

Template C++

这是C++的泛型编程部分。templates威力强大,它能带来崭新的编程范性,即template metaprogramming(TMP,模板元编程)。

STL

STL是一个特殊的template程序库。它对容器、迭代器、算法以及函数对象的规约有极佳的紧密配合和协调,然而templates及程序库也可以其他想法建置出来。STL有自己特殊的办事方式。

C++高效编程

C++高效编程守则视情况而变化,取决于你使用C++的那一部分。对内置(如C)类型而言,pass by value通常比pass by reference高效,对Object-Oriented C++,由于存在用户自定的构造函数和析构函数,pass by reference to const往往更好。而Template使用,彼此甚至不知道所处理的对象的类型。STL中迭代器和函数都是在C指针上塑造出来的,故对其而言,pass by value守则适用。

参考:Effective C++ 侯捷

0 0
原创粉丝点击