我最近发现自己经常做的事情是声明与该类中的特定类相关的 typedef,即
class Lorem { typedef boost::shared_ptr<Lorem> ptr; typedef std::vector<Lorem::ptr> vector; // // ... // };
然后在代码的其他地方使用这些类型:
Lorem::vector lorems; Lorem::ptr lorem( new Lorem() ); lorems.push_back( lorem );
我喜欢它的原因:
std::vector<Lorem>
Lorem::vector
boost::shared_ptr
boost::intrusive_ptr
不喜欢的理由:
boost::shared_ptr<Lorem>
Lorem::ptr
我试图对我的编码风格保持客观,所以最好能得到一些其他的意见,这样我就可以稍微剖析一下我的想法。
我认为它是优秀的风格,我自己使用它。尽可能地限制名称的范围总是最好的,而使用类是在 C 中做到这一点的最佳方式。例如,C 标准库在类中大量使用 typedef。