• Effective C++ 之 Item 1: 视C++为一个语言联邦


    Effective C++

    Chapter 1. 让自己习惯C++(Accustoming Yourself to C++)

         Item 1. 视C++为一个语言联邦(View C++ as a federation of languages)

    将 C++ 视为由四个次语言组成的语言联邦,在某个次语言中,各种守则与通例都倾向于简单、直观易懂、且容易记住。但从一个次语言移往另一个次语言,守则可能改变。

    • C —— C++ 以 C 为基础。区块(blocks)、语句(statements)、预处理器(preprocessor)、内置数据类型(built-in data types)、数组(arrays)、指针(pointers)等统统来自 C 。
    • Object-Oriented C++ —— 这部分是 C with Classes 所诉求的: classes(包括构造函数和析构函数)、封装(encapsulation)、继承(inheritance)、多态(polymorphism)、virtual 函数(动态绑定)……等等。
    • Template C++ —— 这是 C++ 的泛型编程(generic programming)部分。
    • STL —— STL 是个 template 程序库,对容器(containers)、迭代器(iterators)、算法(algorithms)以及函数对象(function objects)的规约有极佳的紧密配合与协调。

    不同的次语言有不同的守则,因而采用不用的策略。如对内置(也就是 C-like)类型而言 pass-by-value 通常比 pass-by-reference 高效,但对于 Object-Oriented C++ ,由于用户自定义构造函数和析构函数的存在,pass-by-reference-to-const 往往更好。运用 Template C++ 时也是如此,因为此时你不知道所处理对象的类型。但一旦跨入 STL,因为迭代器和函数对象都是在 C 指针之上塑造出来的,所以对 STL 的迭代器和函数对象而言,旧式的 C pass-by-value 守则再次适用。

    请记住:

    • C++ 高效编程守则视状况而改变,取决于你使用 C++ 的哪一部分。
  • 相关阅读:
    拓展欧几里得
    使用BIOS进行键盘输入和磁盘读写
    直接定址表
    指令系统总结
    端口
    内中断
    标志寄存器
    call 和 ret 指令
    编写包含多个功能子程序的中断例程
    字符串的输入
  • 原文地址:https://www.cnblogs.com/VVingerfly/p/4444986.html
Copyright © 2020-2023  润新知