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

Post a reply

Smilies
:) :( :oops: :chelo: :roll: :wink: :muza: :sorry: :angel: :read: *x) :clever:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

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

by Anonymous » 12 Feb 2025, 03:40

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.

Top