Kendi kapsamlı enum'umu kullanmamı gerçekten istediğim üçüncü taraf kodlanmamış bir enum (değiştiremediğim) var. Dönüşüm operatörü gibi bir şeyi nasıl sağlayabilirim?Enemler nasıl dökülür?
#include <iostream>
enum ThirdPartyLetter {
A=4,
B=5
};
enum class MyNumber {
ONE=1,
TWO=2
// This doesn't compile, of course
/*Number(const ThirdPartyLetter& rhs) {
if(rhs == ThirdPartyLetter::A) {
return ONE;
}
else {
return TWO;
}
}*/
};
int main() {
ThirdPartyLetter letter = ThirdPartyLetter::A;
MyNumber number = static_cast<MyNumber>(letter);
// Without the cast, this prints 4 (an invalid enum value!)
std::cout << int(number) << std::endl;
}
ThirdPartyNumber
den MyNumber
için döküm çeşit sağlamak için bir yol var mı: Ben yapmak istiyorum ne
böyle bir şeydir?
Eğer oyuncularla bekliyorduk çıkış neydi:
Neyse, yine de dönüşüm mantığını merkezileştirme ve böyle bir şey yapmak için özellikleri kullanabilir? – user
Peki, ben ThirdPartyLetter :: A MyNumber :: ONE ve ThirdPartyLetter :: B MyNumber :: TWO dönüştürmek için cast istiyorum. Bu yüzden beklenen çıktım 1 olur. –