随笔分类 - 编程语言
摘要:
> 如下内容是在看侯捷老师翻译的《Modern C++ Design》书籍时,整理的code和摘要,用于不断地温故知新。 # 第一章 ## 1. 运用 Template Template 参数实作 Policy Classes ```cpp template class CreationPolicy
阅读全文

摘要:
> 此文档参考自:https://gracicot.github.io/conceptmodel/2017/09/13/concept-model-part1.html ,觉得很有趣,就翻译过来了 # 一、Concept-Model:多态的新视角 面向对象编程大家都很熟悉,只需实现一个接口 `Int
阅读全文

摘要:
一、类型推导 PROs: 源码某处的类型修改,可以自动传播其他地方 Cons: 会让代码更复杂(How?) 在模板类型推导时,有引用的实参会被视为无引用,他们的引用会被忽略 template<typename T> void f(T & param); // param 是一个引用 int x =
阅读全文

摘要:
1. 命名空间 KeyNotes: 鼓励在.cc文件里使用匿名命名空间或者sttic声明 禁止使用内联命令空间,X::Y::foo 等价与X::foo。其主要用于跨版本的ABI兼容问题 namespace X{ inline namespace Y{ void foo(); } // namespa
阅读全文

摘要:
第一部分:基础知识 一、const 1. 作用 修饰变量,表示不可能更改 修饰指针 const int *ptr——pointer to const int const *ptr—— const pointer 原则:被const修饰的后面的值是不可改变的 修饰引用 常用于形参。即避免了copy,又
阅读全文

摘要:常量折叠 把常量表达式的值求出来作为常量嵌在最终生成的代码中。 疑问:对于一个很复杂的常量表达式,编译器会算出结果再编译吗?亦或者是把这个表达式完全翻译成机器码,最终留给程序去解决? 分情况: + 涉及的常量折叠是否为语言规范所强制要求的,如果是,则符合规范的编译器就一定要(会)进行常量折叠。 +
阅读全文
摘要:接口implement 继承接口,即履行“义务”。 + 接口中所有的方法自动属于public,在接口声明中,不必提供关键字public + 接口中决不能含有实例域,也不能在接口中实现方法 为了让类实现一个接口,通常需要下面两个步骤: 1. 将类声明为实现给定的接口 2. 对接口中的所有方法进行定义
阅读全文