Was ist der Grund für die Enum -Klasse, der standardmäßigen Regel der C ++ - Klassen nicht zu folgen,C++

Programme in C++. Entwicklerforum
Anonymous
 Was ist der Grund für die Enum -Klasse, der standardmäßigen Regel der C ++ - Klassen nicht zu folgen,

Post by Anonymous »

Seit C ++ 11 hatten wir die Möglichkeit, Scoped -Aufzählungen mit beiden zu verwenden: < /p>

Code: Select all

enum struct MyScopedEnum
{
True = 1,
False = 0
};
< /code>
oder < /p>
enum class MyScopedEnum
{
True = 1,
False = 0
};
Im Gegensatz zu regulärer Klasse und struct , wobei die Mitglieder standardmäßig für die Klasse und standardmäßig für Struct standardmäßig privat sind. Scoped Enum machen ihre Enzerratoren öffentlich, unabhängig davon, ob wir Enumsklasse oder Enum struct verwenden,
Dies scheint die festgelegte Konvention zu brechen, die die Klasse impliziert Strengere Zugriffskontrolle als struktur . Angesichts der Tatsache, dass Scoped Enums keine expliziten Zugriffsspezifizierer zulassen (d. H. Öffentlich: in ihnen ist ungültig), was ist die Gründe für die öffentliche Veröffentlichung der Enzeratoren standardmäßig, anstatt der festgelegten Klasse und struktur Verhalten? In einigen Frameworks/Motoren (z. B. Unreal Engine) sind nur global deklarierte Enums dem Editor/Skript ausgesetzt. In diesen Fällen wäre es großartig, den Enum -Zugang einzuschränken.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post