Sadece
obj.opt=Yes;
Bu kod yok.
Seçmek için const char * nasıl seçilir?
, benim çeteleler bu gibi dönüşümler yapmak için etrafında serbest işlevler kümesi tutmak için yani bir isim alanı içinde benim Çeteleler sarmak edeceğiz ve çalışma için bazı işlevleri sağlamak gibi Bunu manuel yapmanız gerekecek onlarla: Artık
namespace options
{
enum Enum {Yes,No,Invalid};
Enum FromString(const std::string& str);
// might also add ToString, ToInt, FromInt to help with conversions
}
Enum FromString(const std::string& str)
{
if (str == "Yes")
{
return Yes
}
else if (str == "No")
{
return No;
}
return Invalid; //optionally throw exception
}
yapabileceğiniz:
class A{
int i;
string str;
options::Enum opt; // notice change here
};
...
obj.opt=options::FromString("Yes");
Yani görebilirsiniz C++ çeteleler muhtemelen diğer dillerdeki size çeteleler tüm çan ve ıslık vermeyin. Bir şeyi manuel olarak dönüştürmeniz gerekecek.
Ben, sadece hata ayıklama günlükleri okumak gibi geçmek kolaydır (hepsi kez sağlanmaktadır sadece bu yüzden bir makro enum oluşturma sarılmış ettik aslında) ve dize dönüştürme işlevlerine/sağlayabileceği parametreler (ayrıştırılacak). –