09 2018 档案

摘要:05:优先使用auto,而非显示类型声明 显示类型声明有下面一些缺点: 另外,如果想要使用闭包的类型来声明变量,但是闭包的类型只有编译器知道。 有了auto之后,上面这些缺点都可以解决: 使用auto声明变量,必须初始化。 或许你认为没必要使用auto来声明变量持有闭包,使用std::functio 阅读全文
posted @ 2018-09-30 21:54 gqtc 阅读(215) 评论(0) 推荐(0)
摘要:C++的官方钦定版本,都是以ISO标准被接受的年份命名,分别是C++98,C++03,C++11,C++14,C++17,C++20等。C++11及其后续版本统称为Modern C++。 C++11之前,仅有一套类型推导规则,也就是函数模板的推导。C++11之后,又增加了了auto和decltype 阅读全文
posted @ 2018-09-29 08:45 gqtc 阅读(781) 评论(0) 推荐(0)
摘要:Whenever a reference is bound to a temporary or to a subobject thereof, the lifetime of the temporary is extended to match the lifetime of the referen 阅读全文
posted @ 2018-09-20 08:35 gqtc 阅读(2731) 评论(0) 推荐(2)
摘要:32:在未来时态下发展程序 世事永远在变,好的软件对于变化有良好的适应能力:可以容纳新的性质,可以移植到新的平台,可以适应新的需求,可以掌握新的输入。所谓在未来时态下设计程序,就是接受“事情总会改变”的事实,并准备应因之道。 要做到这件事情,办法之一就是以C++本身(而非只是注释或说明文件)来表现各 阅读全文
posted @ 2018-09-13 08:27 gqtc 阅读(258) 评论(0) 推荐(0)
摘要:30:Proxy classes 代理类 在C++中使用变量作为数组大小是违法的,也不允许在堆上分配多维数组: 为了弥补上述缺点,可以设计一个二维数组类: 因为没有operator[][]这样的操作符,为了能以data[3][6]的形式访问该二维数组,所以,这里需要使用proxy类: 每个Array 阅读全文
posted @ 2018-09-11 08:32 gqtc 阅读(246) 评论(0) 推荐(0)
摘要:29:引用计数 本章首先实现一个带引用计数String,然后逐步优化,介绍引用计数的常规实现。 实现引用计数的String,首先需要考虑:引用计数在哪存储。这个地方不能在String对象内部,因为需要的是每个String值一个引用计数值,这意味着String值和引用计数间是一一对应的关系,因此需要创 阅读全文
posted @ 2018-09-07 21:23 gqtc 阅读(183) 评论(0) 推荐(0)
摘要:25:将constructor 和 non-member functions 虚化 所谓 virtual constructor是某种函数,视其输入可产生不同类型的对象。比如下面的代码: readComponent根据参数str,决定产生TextBlock或Graphic。由于它产生新的对象,所以行 阅读全文
posted @ 2018-09-02 20:40 gqtc 阅读(247) 评论(0) 推荐(0)