6 EKİM 2009, Salı
C string dönüşüm '*' char sürekli kullanımdan kaldırıldı;
private char str[256];
ile bir sınıf var
ve bunun için açık bir kurucu var:
explicit myClass(const char *func)
{
strcpy(str,func);
}
O kadar diyorum:
myClass obj("example");
Ben bu derleme yaparken aşağıdaki uyarıyı alıyorum:
dizeden itiraz dönüşüm için sürekli 'char*'
Neden böyle oluyor?
CEVAP
7 EKİM 2009, ÇARŞAMBA
Uyarı:
dizeden itiraz dönüşüm için sürekli 'char*'
bir yere gidiyorsun çünkü verilen (ilan kodu değil) gibi bir şey
void foo(char* str);
foo("hello");
Sorun char*
bir dize (7 ** tipi ile) dönüştürmek için çalışıyoruz.
Dizi işaretçi bozulur çünkü const char*
const char[]
bir dönüştürebilirsiniz, ama sen ne yapıyorsun sürekli bir değişken yapıyor.
Bu dönüşüm muhtemelen C uyumluluk için izin verilir, ve sadece uyarı söz verir.
Bunu Paylaş:
Nasıl dize itiraz dönüşüm `’ GCC yanmı...
stringstream, string, char* dönüşüm ka...
String içinde verilen bir dizin yerine...
String.(Char, char c yöntem değiştir#...
char* dönüştürmek std::string...