由于我已经编写了大约一年的C / C ++编程,我试图学习编写优秀的OO和C ++代码的首选方法。这意味着,在编码时,我总是在实现某些东西时寻找最好的方法,而不仅仅是输入内容并检查它是否有效。 我已经告诉过,在C ++中,你应该在向函数传递参数时使用引用而不是原始指针,以使其更安全。因此,这将被视为更好的编码。虽然,在许多高质量的开源项目(它们是C ++)中,它们使用指针而不是引用。所有参数,返回和东西都是指针而不是更安全的引用。甚至微软的directx也使用指针而不是更安全的选项。我不能通过使用指针而不是引用来看到任何好处,实际上我认为原始指针比引用更糟糕(在当然不需要动态alloc的情况下)。
关于我的问题:为什么大多数开源项目都使用指针,哪里有更好的方法?
答案 0 :(得分:2)
不确定这是否表示质量,但根据Google's C++ Style Guide,
通过引用传递的所有参数必须标记为const。
...
事实上,在Google代码中输入是一个非常强大的惯例 参数是值或const引用,而输出参数是 指针。
答案 1 :(得分:1)
在“许多高质量的开源项目”中,没有使用ideomatic C ++。许多这样的库将C ++视为C,并添加了一些铃声和口哨声,而不是它自己的语言。
虽然没有特定的库,但很难说任何关于使用引用而不使用引用的内容。如果你暴露了一个C API,那么当然你被迫使用指针,因为C没有引用。
答案 2 :(得分:0)
您认为无可挑剔的代码有很多原因。
在开源领域,其中一个问题是有很多人在那里有时间免费提供不同技能水平,所以你经常会得到一些混合风格,其中一些包括C和类。
在像dx10这样的大型项目中,为什么指针被用于其他参考的原因很多,但通常有很多原因可以让它尽可能轻松地与'纯C'集成;它没有引用类型。或者只是一个包含在类抽象中的C库。
尽管如此,因为你看到周围的'糟糕'代码是没有理由自己写的。