“传统”C类(只是一些随机声明)可能类似于以下内容:
class Foo { public: Foo(); explicit Foo(const std::string&); ~Foo(); enum FooState { Idle,Busy,UnkNown }; FooState GetState() const; bool GetBar() const; void SetBaz(int); private: struct FooPartialImpl; void HelperFunction1(); void HelperFunction2(); void HelperFunction3(); FooPartialImpl* m_impl; // smart ptr FooState m_state; bool m_bar; int m_baz; };
如果原始程序员没有整齐地组织他的“访问区域”,我总是发现这种类型的访问级别规范很难并且难以遵循.
看一下Java / C#风格的相同代码片段,我们得到:
class Foo { public: Foo(); public: explicit Foo(const std::string&); public: ~Foo(); public: enum FooState { Idle,UnkNown }; public: FooState GetState() const; public: bool GetBar() const; public: void SetBaz(int); private: struct FooPartialImpl; private: void HelperFunction1(); private: void HelperFunction2(); private: void HelperFunction3(); private: FooPartialImpl* m_impl; // smart ptr private: FooState m_state; private: bool m_bar; private: int m_baz; };
在我看来,这更容易在标题中读取,因为访问说明符就在目标旁边,而不是一堆线.我在使用未与通常的“* .hpp / * .inl”对分开的仅标题模板代码时发现这一点尤其正确.在那种情况下,函数实现的大小压倒了这个小而重要的信息.
我的问题很简单,源于这样一个事实:我从来没有见过其他人在他们的C代码中积极地做这件事.
假设我没有“Class View”能力的IDE,那么使用这种级别的冗长有什么明显的缺点吗?
欢迎任何其他风格的建议!
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。