C类访问说明符详细程度

前端之家收集整理的这篇文章主要介绍了C类访问说明符详细程度前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
“传统”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,那么使用这种级别的冗长有什么明显的缺点吗?

欢迎任何其他风格的建议!

解决方法

“在罗马做到入乡随俗.”

我花了很多时间使用Java,就像分别为每个字段和方法指定访问说明符的样式一样.但是,当我使用C编程时,我总是使用第一个代码段中显示的样式.

猜你在找的C&C++相关文章