如何组织班级成员职能?

时间:2013-08-10 11:50:33

标签: c++ member-functions

我在构造函数之后放置'sets',因为它与对象设置有关。我分裂得到(放入询问)并设置但不确定这是否好。组织成员职能的最佳做法是什么?

那怎么样?

class Foo
{
// Friends go here if it has
friend ...;
friend ...;

// First public, then protected and private
public:
    // enums
    enum {...}

    // type defines.
    typedef ...;
    ...

    // Destructor and constructors
    ~Foo();
    Foo(...);
    Foo(...);
    ...

    // Sets.
    void setA(...);
    void setB(...);
    void setC(...);
    ...

    // Inquiries (including gets).
    A a() const;
    B b() const;
    ...

    // Operators.
    void operator()(...);
    ...

    // Operations.
    void doSomething();
    ...

protected:

private:
};

1 个答案:

答案 0 :(得分:2)

很难判断,这取决于您的个人偏好或公司编码标准。通过查看您的代码,我可能不同意一些事情:

  • 您的声明不是从pubilc,'protected`然后私人
  • 订购的
  • friend声明在私有区域声明时也有同样的效果。所以我通常将它们放在私人部分,因此public section中的噪音较少。

以下是我通常使用的声明顺序

在类中使用指定的声明顺序:publicprivate:之前,数据成员之前的方法(变量)等

类定义应从其public:部分开始,然后是protected:部分,然后是private:部分。如果这些部分中的任何部分为空,请省略它们。

在每个部分中,声明通常应按以下顺序排列:

Typedefs and Enums
Constants (static const data members)
Constructors
Destructor
Methods, including static methods
Data Members (except static const data members)

朋友声明应始终位于私有部分,已禁用 copy constructor和其他运算符`应位于private:部分的末尾。这应该是班上最后一件事。