条款一:视C++为一个语言联邦

本文探讨了C++作为多重范型编程语言的特点,包括其支持的过程形式、面向对象形式、函数形式、泛型形式及元编程形式。通过将C++视为由C、面向对象C++、模板C++及STL等多个次语言组成的联邦,本文深入剖析了各部分的重要性和使用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

语言联邦

C++刚被推出时是C的加强版,加了一些面向对象的特性。最初的名称为C with Classes。随着时代的进步,C++不断发展,有了各种特性。
现在的C++是一个多重范型编程语言(multiparadigm programming language),它支持

  • 支持过程形式

  • 支持面向对象形式

  • 函数形式

  • 泛型形式

  • 元编程形式

这些能力使得c++成为一个无可匹敌的工具。我们可以把c++理解为相关语言组成的联邦而非单一语言。
为了理解C++,必须认识其主要的次语言。

  • C
    C++以C为基础。所以必须先学好C。区块、语句、预处理、内置数据类型、数组、指针都来自于C。当你以C++内的C成分工作时,高效编程守则映射出C语言的局限:没有模板,没有异常,没有重载

  • Object-Oriented C++
    这部分是c with classes的重点了:classes、封装、继承、多态、virtual….。这一部分是面向对象设计之古典守则在C++上的最直接实施。

  • Template C++
    这个是c++的泛型编程部分。Template的相关考虑与设计已经弥漫了整个c++。由于template过于强大,它们带来了崭新的编程范型,也就是现在火热的template metaprogramming(TMP,模板元编程)。

  • STL
    STL是一个template程序库,它是一个非常特殊的模板库。它对容器、爹地阿奇、算法、以及函数对象的规约有极佳的紧密配合与协调,然而templates及程序库也可以其他想法建置出来。

记住这四个次语言非常重要,当你从某个次语言切换到另一个,导致高效编程守则要求你改变策略。例如对内置(也就是C-like)类型而言pass-by-value通常比pass-by-reference高效,但当你从C part of C++移往Object-Oriented C++,由于用户自定义构造函数和析构函数的存在,pass-by-reference-to-const往往更好。运用TemplateC++时尤其如此,因为彼时你甚至不知道所处理的对象的类型。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值