Effective Go笔记 一 格式化 使用gofmt程序对go源码进行格式化,以便统一编码风格,可直接在GoLand进行配置[1]。Go源码格式使用tab作为缩进,且很少使用括号。 二 注释 Go支持块注释/**/和行注释//,行注释更常用,块注释主要用于包注释和大块代码禁用。godoc[2]支持从注释中提取文档,每个包和可导出的名称(大写)都应该
Effective C++读书笔记(20): 多用常量引用传递 守则20: 多用常量引用传递,少用值传递 "Prefer pass-by-reference-to-const to pass-by-value" 本章关键词: 常量引用传递,值传递,拷贝,对象切割 C++继承了C默认传递方式为值传递的特性,那么对于一个值传递的函数,它的参数是被传进来变量的拷贝初始化的。拷贝是...
将C++看作是以多个相关语言组成的结合体而不是一个关系紧密的单一语言: C语言: C++的基础结构 面向对象部分: C++创造时的目标 模板C++: 为了支持泛型编程而创建的语法, 并实现了模板元编程(TMP)这种奇技淫巧 标准模板库: 充分运用了模板C++编写的程序库, 每个开发者都应该学习STL C++各个部分功能上有很大的重叠...
《Effective C++》学习笔记 让自己习惯C++ 条款01:视C++为一个语言联邦 C++可视为: C:以C为基础。 面向对象的C++:添加面向对象特性。 模板C++:泛型编程概念,使用模板。 STL:使用STL的容器、迭代器、算法、及函数对象。 四者的集合。 条款02:尽量以const、enum、inline替换 #define 对于单纯常量,尽量以const对象...
template <typename C>void print2nd(const C& container) { if (container.size() >= 2) { // 一般性规则很简单:任何时候当你想要在 template 中指涉一个嵌套从属类型名称,就必须 // 在紧临它的前一个位置放上关键字 typename typename C::const_iterator iter(container.begin()); }}temp...
但是,当代码从C part of C++转移到Object-Oriented C++时,由于用户会自定义构造/析构函数,所以const引用传递(pass-by-reference-to-const)会更好。在Template C++时更是如此。 然而STL中的迭代器和函数对象都是在C指针上塑造出来的,所以对这两项来说,pass-by-value更合适。
Effective C++试读笔记 忙里偷闲看两本书,略读一边先,做点笔记,然后再细品 Part1 习惯C++ 1. 视C++为一个语言联邦 C++非常的屌,除了开发效率和编译效率不高,其他的都非常屌 C++ 可以视为一系列的语言联邦构成的紧密结合体,分为以下四个部分 C 2.C with Classes...
宁可使用 C++-style(新式)转型,不要使用旧式转型(C 风格转型)。前者很容易辨识出来,而且也比较有着分门别类的职掌。28.避免返回 handles 指向对象内部成分 Avoid returning handles to object internals class Point { // 这个 class 用来表述"点" public: Point(int x, int y) {} void setX(int new...
《Effective C++》读书笔记(1) 第一部分,使你自己习惯于C++。有4个Item。 Item 1: View C++ as a federation of languages. 把C++看成许多语言的联合,不同的规则会用在不同的部分。其实啦,只有4部分的: C Object-Oriented C++ Template C++ The STL 因此,需要辩证的看待某些…阅读全文 赞同 ...
Effective Objective-C 2.0 笔记 (一) 第1条 了解Objective-C语言起源 这一章先是澄清了OC的消息机制和函数调用机制的区别。C++的函数调用机制在涉及到多态的时候也是动态绑定的,而OC只是普通的函数调用也是动态绑定的,也就是运行时查找应该执行的函数指针。 接着介绍了OC中的对象都是保存在堆上的,非对象类型都是...