Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/141.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++;多次访问说明符_C++ - Fatal编程技术网

C++ 使用相同的C++;多次访问说明符

C++ 使用相同的C++;多次访问说明符,c++,C++,当下一行正好在它下面或下面几行时,反复声明多个“public”说明符的目的是什么。当代码修改了某些标识符的属性时,我可以理解这是一个要求,即那些隐藏在宏中的标识符(因此更改了宏中的访问属性,因此我们需要从宏中“重新定义”),或者当我们每个访问说明符部分有许多标识符时。但反复使用“public”、“public”的目的是什么 代码 class CDrawMFCView : public CView { protected: // create from serialization only

当下一行正好在它下面或下面几行时,反复声明多个“public”说明符的目的是什么。当代码修改了某些标识符的属性时,我可以理解这是一个要求,即那些隐藏在宏中的标识符(因此更改了宏中的访问属性,因此我们需要从宏中“重新定义”),或者当我们每个访问说明符部分有许多标识符时。但反复使用“public”、“public”的目的是什么

代码

class CDrawMFCView : public CView
{
protected: // create from serialization only
    CDrawMFCView();
    DECLARE_DYNCREATE(CDrawMFCView)

// Attributes
public:
    CDrawMFCDoc* GetDocument() const;

// Operations
public:

// Overrides
public:
    virtual void OnDraw(CDC* pDC);  // overridden to draw this view
    virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
protected:
  // etc.,

};

当你在屏幕上看到一个方法多于行的类时,它可能会很有用,所以你只要看看,比如

...
void f();
void g();
void h();
...

通过多次重复
public:
,您可以提醒人们所有这些都是公共的(当然,终端中的方法多于行意味着终端有点小或类太大)。

这样做没有语言目的。我认为这是不好的风格。但是有些人喜欢把某一类的东西分成一个区域,然后把这个区域分成公共/保护/私人区域。然后,当它们恰好只有public元素时,public关键字就会重复出现


我认为这很愚蠢。但是有些人发现这样组织他们的代码很有用。

对于初学者来说,现在的代码没有必要这样做,因为代码部分可能:

  • 变得更长
  • 被剪切和粘贴到不同的顺序中,或者甚至被复制到不同的类中,或者被复制到新的类中
  • 让某些部分更改访问说明符,而不更改前面或后面的部分
如果您依赖与上一节具有相同访问规范的节,vry通常在代码更改时您(或您,六个月后,或其他人)会忘记更改它,那么代码就错了。

只有一个形式上的原因:访问说明符之间的数据成员在内存中按顺序排列,但访问说明符之间的数据成员可能在内存中按顺序排列

class Foo {
  public:
    int a;
    int b; // Must come after a
  public:
    int c; // Does not have to come after a and b.
};

第二个
public:
为优化器提供了更多空间。

没有理由。它们只是稍后添加代码的占位符。