Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在类结束时声明私有成员有什么好处?_C++ - Fatal编程技术网

C++ 在类结束时声明私有成员有什么好处?

C++ 在类结束时声明私有成员有什么好处?,c++,C++,发件人: 注意私有成员在末尾是如何声明的。我在其他几个地方见过这种编程风格,但不知何故,我发现首先声明私有成员更容易阅读 像上面那样在课程结束时声明私有成员有什么好处吗?绝对没有,我不明白为什么你应该有好处 这只是个人品味的问题,你应该试着理解你的眼睛更喜欢在哪里寻找它们,并坚持这样做。阅读类声明时,最重要的是公共界面,因此从顶部看是有意义的。您的目光不应该被持有实现的私人成员所吸引 不过这真的没什么关系。选择一种风格(或被赋予一种风格)并坚持下去 事实上,我能真正想到的唯一变化就是成员初始化的

发件人:

注意私有成员在末尾是如何声明的。我在其他几个地方见过这种编程风格,但不知何故,我发现首先声明私有成员更容易阅读


像上面那样在课程结束时声明私有成员有什么好处吗?

绝对没有,我不明白为什么你应该有好处


这只是个人品味的问题,你应该试着理解你的眼睛更喜欢在哪里寻找它们,并坚持这样做。

阅读类声明时,最重要的是公共界面,因此从顶部看是有意义的。您的目光不应该被持有实现的私人成员所吸引

不过这真的没什么关系。选择一种风格(或被赋予一种风格)并坚持下去


事实上,我能真正想到的唯一变化就是成员初始化的顺序。但是,在最初的C++实现中,所有成员都必须在类的开头声明,或者方法定义中的代码不能看到它们。后来增加了在末尾定义成员的功能,一些人享受着新的自由,采用了这种风格并坚持下去。不过,这两个位置都有意义。

在类末尾声明私有成员肯定是一种命名约定。这不是必需的,但很容易阅读,因为通常会看到它们列在公共成员之后


但是,您也可以省略“private:”部分,只在公共成员之外声明您的私有成员。如果您没有将这些变量放在“private:”部分下,而只是在“public:”区域之外(在本例中,在上面)声明它们,那么它们应该自动默认为private

这只是风格的问题。这两种方式都没有好处唯一的好处是,如果有人在浏览你的标题,他可以首先看到感兴趣的公众成员。这仅仅是一个问题,如果你的类很长,你可能应该避免。我唯一要补充的是,无论你喜欢什么,你可能想尝试将所有的public/protected/private放在一起。可能只有我一个人,但是一些公开的然后一些私人的然后更多的公开,等等,更难阅读。
class TestBed
{
  public:
    enum StrategyType
    {
        Dummy, Left, Right, Center
    };
    TestBed()
    {
        strategy_ = NULL;
    }
    void setStrategy(int type, int width);
    void doIt();
  private:
    Strategy *strategy_;
};