Re: Stavový automat, goto - enum
Miroslav Mraz
mrazik na volny.cz
Pátek Leden 27 18:11:05 CET 2023
V C++ to jde asi takto:
enum class tEnum1 { e1=0, e2=1, e3=2 };
enum class tEnum2 { e1=10, e2=11, e3=12 };
int main (void) {
//tEnum1 var0 = e2; // error: ‘e2’ was not declared in this scope
tEnum1 var1 = tEnum1::e2;
tEnum2 var2 = tEnum2::e2;
//var1 = tEnum2::e1; // error: cannot convert ‘tEnum2’ to ‘tEnum1’ in
assignment
printf("var1 = %d, var2 = %d\n", static_cast<int>(var1),
static_cast<int>(var2));
// => var1 = 1, var2 = 11
return 0;
}
Všimněte si přetypování v argumentech printf. Bez něj to sice funguje,
ale vyhodí varování. Ještě se k tomu vrátím.
Mrazík
On 27. 01. 23 17:38, Pavel Hudeček wrote:
> dejme tomu, že chcete
> tEnum1, který obsahuje e1=0, e2=1, e3=2
> tEnum2, který obsahuje e1=10, e2=11, e3=12
>
> V C to nejde.
>
Další informace o konferenci Hw-list