Effective C++_1让自己习惯C++_条款01:视C++为一个语言联邦

C++是一种多重范型编程语言,融合了过程、面向对象、函数式和泛型编程。它由C、Object-Oriented C++、Template C++和STL四个次语言组成。STL通过模板提供了容器、迭代器和算法。C++中,何时使用pass-by-value或pass-by-reference取决于具体次语言和场景,如内置类型通常适合pass-by-value,而STL和类操作常采用pass-by-reference。

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

今天的C++已经是个多重范型编程语言(multiparadigm programming language),一个同时支持过程形式(procedural)、面向对象形式(object-oriented)、函数形式(functional)、泛型形式(generic)、元编程形式(metaprogramming)的语言。

最简单的方法是将C++视为一个由相关语言所组成的一个联邦而非单一语言。

为了理解C++语言,你必须认识其主要的次语言。共由四个:

  • C。C++以C为基础
  • Object-Oriented C++。这部分也是C with Classes 所诉求的:classes(包括构造函数和析构函数),封装(encapsulation)、继承(inheritance)、多态(polymorphism)、虚函数(动态绑定)等等。
  • Template C++。这是C++的泛型编程部分,也是大多数程序员经验最少的部分。
  • STL。STL是个模板程序库,对容器、迭代器、算法以及函数对象(function object)的规约由极佳的紧密配合与协调。

对于内置(C-like)类型而言 ,pass-by-value 往往比pass-by-refence 更高效。

涉及到C++的类 ,面向对象的时候,是pass-by-refence 更好,TemplateC++也是如此。

一旦跨入STL,就会了解迭代器和函数对象都是在C指针之上塑造出来的,所以针对STL的迭代器和函数对象而言,旧式的C pass-by-value又再次适用。

记住:C++是四个次语言所组成的一个联合体,每个语言都有自己的规约,记住这四个次语言,你会发现C++语言容易理解的多。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值