【发布时间】:2010-12-18 02:13:54
【问题描述】:
C++ 程序员应该知道哪些 C++ 习语?
我所说的 C++ 习语,是指设计模式或做某些事情的方式,它们仅适用于 C++,或者比大多数其他语言更适用于 C++。
为什么要使用成语,成语有什么作用?
【问题讨论】:
-
你能用那么多其他语言做 RAII 和 PIMPL 吗?
-
你不需要非 GC 语言,参见例如C# 和常见的
using(A a = new A()) { ... }使用IDisposable。 -
@gf。真的。但这只是比使用 try {} catch {} finally {} 来实现 RAII 更漂亮。 RAII 应该不需要对象用户的任何操作。 C++ 对 RAII 所做的事情是将正确使用的责任推给类的设计者而不是类的用户。
-
@Martin:好点,不知何故,我不认为设计方面的执行是 RAII 的一个属性。
-
我不会将 C# 的 using 语句视为 RAII 的示例。问题是你仍然不能让对象管理资源,这是 RAII 的重点,你仍然需要在 create 对象时手动完成,你只是得到一些语法糖来让它看起来更好。
标签: c++ design-patterns idioms c++-faq