Effctive C++ 学习笔记(一)

Effctive C++ 学习笔记(一)

术语

declaration 声明式

​ declaration是告诉编译器某个东西的名称和类型(type),但略去细节。
​ 例如:

extern int x;										//object declaration
std::size)t numDigits(int number);					  //function decalration
class Widget;										//class decalration

tmplate<typename T>;								 //template decalaration
class GraphNode;									//use of "typename"

signature 签名式:也就是参数和返回类型

definition 定义式:提供编译器一些声明式所遗漏的细节。

initialization 初始化:给予对象初值的过程。

implicit type conversions 隐式类型转换

explicit type conversions 显示类型转换

passed by value 以值传递

STL Standard Template Library 标准模板库

01 View C++ as a fedration of languages

将C++视作一个语言联邦

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

​ 此处作者认为,我们应该将C++视为一个由相关语言组成的联邦而非单一语言。在其某个次语言(sublanguage)中,各种守则与通例都倾向简单、直观易懂、并且容易记住。当我们从一个次语言移动到另一个次语言,守则可能改变。主要的次语言包括四个

  • **C 。**C++以C为基础。区块(blocks)、语句(statements)、预处理器(preprocessor)、内置数据类型(built-in data types)、数组(arrays)、指针(pointers)。
  • **Object-Oriented C++。**这部分也就是C with Classes所诉求的: classes (包括构造函数和析构函数), 封装(encapsulation )、继承(inheritance)、多态(polymorphism)、virtual函数(动态绑定)。
  • **Template C++ 。**这是C++的泛型变成(generic programming)部分。template威力强大,它们带来崭新的编程范型(programming paradigm),也就是所谓的template metaprogramming (TMP,模板元变成)。
  • **STL。**STL是个template程序库,但它是非常特殊的一个。它对容器(containers)、迭代器(iterators)、算法(algorithms)以及函数对象的规约有极佳的紧密配合和协调,然而templates及程序库也可以由其他想法构建出来。

​ 从某个次语言切换到另一个,导致高效编程守则要求你改变策略时,是正常的,

​ 例如,对内置(C-like)类型而言,pass-by-value 通常比pass-by-referenc-to-const往往更好。所以C++高效编程守则视状况而改变。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值