fix translation in #1.5

This commit is contained in:
kenkangxgwe
2017-09-04 22:13:35 -04:00
parent 70a122de25
commit e4929cf6ff

View File

@@ -80,6 +80,7 @@
void test(D* x) { f(x); } // calls f(B*)
如果 ``#include````B````D`` 的前置声明替代, ``test()`` 就会调用 ``f(void*)`` .
* 前置声明了不少来自头文件的 symbol 时,就会比单单一行的 ``include`` 冗长。
* 仅仅为了能前置声明而重构代码(比如用指针成员代替对象成员)会使代码变得更慢更复杂.
@@ -130,11 +131,11 @@
项目内头文件应按照项目源代码目录树结构排列, 避免使用 UNIX 特殊的快捷目录 ``.`` (当前目录) 或 ``..`` (上级目录). 例如, ``google-awesome-project/src/base/logging.h`` 应该按如下方式包含:
.. code-block:: c++
.. code-block:: c++
#include "base/logging.h"
#include "base/logging.h"
又如, ``dir/foo.cc`` 的主要作用是实现或测试 ``dir2/foo2.h`` 的功能, ``foo.cc`` 中包含头文件的次序如下:
又如, ``dir/foo.cc````dir/foo_test.cc`` 的主要作用是实现或测试 ``dir2/foo2.h`` 的功能, ``foo.cc`` 中包含头文件的次序如下:
#. ``dir2/foo2.h`` (优先位置, 详情如下)
#. C 系统文件
@@ -146,9 +147,11 @@
``dir/foo.cc````dir2/foo2.h`` 通常位于同一目录下 (如 ``base/basictypes_unittest.cc````base/basictypes.h``), 但也可以放在不同目录下.
按字母顺序头文件包含进行二次排序是不错的主意。注意较老的代码可不符合这条规则,要在方便的时候改正它们。
按字母顺序分别对每种类型的头文件进行二次排序是不错的主意。注意较老的代码可不符合这条规则,要在方便的时候改正它们。
您所依赖的 symbols 被哪些头文件所定义您就应该包含include哪些头文件:ref:`forward-declaration` 情况除外。比如您要用到 ``bar.h`` 中的某个 symbol, 哪怕您所包含的 ``foo.h`` 已经包含了 ``bar.h``, 也照样得包含 ``bar.h``, 除非 ``foo.h`` 有明确说明它会自动向您提供 ``bar.h`` 中的 symbol. 不过,凡是 cc 文件所对应的「相关头文件」已经包含的,就不用再重复包含进其 cc 文件里面了,就像 ``foo.cc`` 只包含 ``foo.h`` 就够了,不用再管后者所包含的其它内容。
您所依赖的符号 (symbols) 被哪些头文件所定义您就应该包含include哪些头文件`前置声明`__ (forward declarations) 情况除外。比如您要用到 ``bar.h`` 中的某个符号, 哪怕您所包含的 ``foo.h`` 已经包含了 ``bar.h``, 也照样得包含 ``bar.h``, 除非 ``foo.h`` 有明确说明它会自动向您提供 ``bar.h`` 中的 symbol. 不过,凡是 cc 文件所对应的「相关头文件」已经包含的,就不用再重复包含进其 cc 文件里面了,就像 ``foo.cc`` 只包含 ``foo.h`` 就够了,不用再管后者所包含的其它内容。
__ forward-declarations_
举例来说, ``google-awesome-project/src/foo/internal/fooserver.cc`` 的包含次序如下: