0

我正在转换我的代码以遵循google C++ style guide引用参数规则说“通过引用传递的所有参数都必须标记为 const”和“输入参数是值或 const 引用,而输出参数是指针”。

关于签名void MyTable::LoadTable(ifstream &fin),我如何标记fin const给定的参数LoadTable调用一些非常量函数fin,例如fin.seekg?我认为fin应该被视为输入/输出参数,因此它有点特别。在这种情况下,谷歌人会怎么做?


更新:我知道有很多关于谷歌风格指南的批评。我只是想知道 googlers 是如何解决这个问题的,也许我找到了答案:还有一条规则Streams阅读“仅将流用于日志记录”。也许他们只是在这种情况下不使用流。

4

1 回答 1

4

为了遵守 Google 指南,请更改声明

void MyTable::LoadTable( ifstream& fin )

void MyTable::LoadTable( ifstream* fin )

现在你可能想知道,这有什么意义?大部分答案可能是 Google C++ 风格指南在Google 之外根本没有多大意义。部分原因可以通过假设需要维护大量 C 风格遗留代码来解释,但部分原因令人费解。

仅举一个例子,std::getline它在很大程度上违反了 Google 风格指南。

于 2014-06-05T01:59:24.840 回答