PDA

Tam Sürümünü Görmek İçin : basit c++ problemi


atg
01/04/2005, 23:38
normalde hazır bir şeyler kullanmayı sevmem dolayısyla en yavaşıda olsa kendi yaptığımı kullanırım, ama geçenlerde şu std::string'i deyeceğim tuttu ve bazı problemlerle karşılaştım, aşağıdaki kodu vc++2003 ile derlemek istedim sonuç olarak bana 4 tane hata mesajı döndü ilk üçü 17 milyon 324 bin 778 kelimeli karman çorman bir şey olduğu için pek anlayamadım, ama üçüncüsü std::string'in + operatörünün böyle bir yeteneğinin olmadığından bahsediyordu, ne var ki gcc bunu hatasız olarak derledi?


#include <iostream>
using namespace std;
#include "tchar.h"


int _tmain(int argc, _TCHAR* argv[])
{
string a,b,c;
b = "abc";
c = "xyz";

a = b + c;

return 0;
}


şimdi soracağım şeyin ne olduğunu tahmin ediyorsunuzdur,

1-) derleyiceler arasındaki bu uyumsuzluğun sebebi ne? ( alıştık tek elden çıkma derleyiciye )

2-) problemli derleyici hangisi ve derdi ne?


Volkan Uzun
02/04/2005, 11:54
tchar.h dosyasının içinde ne var bilemiyorum ama
#include<string.h>
dedikten sonra tekrar vc 2003 ile denermisin

atg
03/04/2005, 00:34
tamam şimdi doğru, senin dediğin şekilde hata vermedi, teşekkürler, derleyicilerin bu tür farklılıklar içerdiğini unutmuşum( 5 seneden sonra )

bu tchar.h denen şey standardize bir header gcc ve vc++ ikinsidede var, içinde "_TCHAR" ve/veya buna benzer bazı şeyler var.

acehreli
04/04/2005, 18:49
Bir dakika yahu! :) sanal_programci <string> demek isteyip <string.h> yazmis... atg, sen de <string> kullandin degil mi? Cunku <string.h> bir C basligidir; <string> ise std::string'i tanimlar.

<tchar.h> standart degil aslinda ama her iki derleyicide de geliyor olmasi guzel. Yanilmiyorsam programda kullanilan karakter turunu (char, veya wchar_t, veya baska bir sey) kolaylikla degistirmek icin kullaniliyor.

Ali

atg
04/04/2005, 23:51
evet <string> kullandım, <string.h> kullanınca yine o malum hataların hepsini diziyor karşıma