2

我把'sets'放在构造函数之后,因为它与对象设置有关。我拆分了gets(放入查询)和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:
};
4

1 回答 1

2

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

  • 您的声明不是从pubilc,'protected` 然后是私有的
  • friend当您在私人区域声明它们时,声明也有同样的努力。所以我通常把它们放在私人部分,所以它在public section.

以下是我通常使用的申报顺序:

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

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

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

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

友元声明应该总是在私有部分,并且disabled copy constructor和其他操作符`应该在私有:部分的末尾。这应该是课堂上的最后一件事。

于 2013-08-10T12:00:36.463 回答