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++类中,有6个默认成员函数: 构造函数 析构函数 拷贝...
#pragma once // 1. 设计一个不能被拷贝的类/* 解析:拷贝只会放生在两个场景中:拷贝构造函数以及赋值运...
C类型转换 C语言:显式和隐式类型转换 隐式类型转化:编译器在编译阶段自动进行,能转就转,不能转就编译...
//异常的概念/*抛出异常后必须要捕获,否则终止程序(到最外层后会交给main管理,main的行为就是终止) try...
#pragma once /*Smart pointer 智能指针;灵巧指针 智能指针三大件//1.RAII//2.像指针一样使用//3.拷贝问...
目录<future>future模板类成员函数:promise类promise的使用例程:packaged_task模板类例程...