C ++中的访问修饰符区域是否等效?

可以在C ++中使用以下结构声明变量

private: public: protected: float bla1; float bla2; float bla3; 

C#中有等价的吗? 不得不重复自己似乎相当乏味;

 protected float bla1; protected float bla2; protected float bla3; 

不,没有这样的事情。 实际上,它的设计就是为了让代码更具可读性。 这适用于C#和Java。

不会。在每个声明中指定访问权限。

这样做的好处是方法在源文件中的位置对行为没有影响。 这意味着您可以移动方法和属性(例如,将相关的方法集中在一起)而不受惩罚。 对于字段来说也是如此 – 可以使字段的声明顺序很重要。 不可否认,最好不要首先这样做……

值得注意的是,如果你有几个相同类型的成员,你可以将它们声明为:

 protected float bla1, bla2, bla3; 

没有C#中的等价物(VB和F#也是如此)。

我个人喜欢这种差异。 我在一个非常大的C ++代码库中工作,没有办法查看特定方法并知道它的特定可访问性。 有些类已经变得如此之大,以至于需要进行大量的页面滚动才能看到修饰符。

一些程序员可能认为这并不坏,但考虑当人们开始在课堂中间混合#if defs并在#if中加入修饰符时会发生什么。 它使得在代码审查期间确定访问修饰符成为一项重要的操作。

这是一个小的打字牺牲,可以在线添加修饰符,但在长期可读性方面值得。