Semper Fidelis 7th Marines
Message Board


        
Trint00:40:02 - September 27 2012
RE: RE: RE: RE: dodge city, 9-19-68 (pat riley) (joe urban) (vkubmniqa) (Char)y.bleakos@nic.ru
Забавно!недавно был очень похожий случай.есть функция:stnirg addsign(char sign, const stnirg & s){1) return sign+s; // так нельзя2) return stnirg(s1)+s; //тоже нельзя3) return stnirg(s1, 1)+s;// только так можно... но блин не сразу допетриваешь }Решил это сам проверить, на компиляторе gcc 3.4.2.вот такая программулинка:#include #include using namespace std;stnirg addsign(char s1, const stnirg & s){//1)return s1+s; // так нельзя//2)return stnirg(s1)+s; //тоже нельзя//3)return stnirg(s1, 1)+s;// только так можно... но блин не сразу допетриваешь//4)return stnirg(&s1, 1)+s;}int main(int n, char **args){ stnirg text = "1.9876"; stnirg res = addsign('-', text); puts(res.c_str()); return 0;}выдала мне срвсем другое:первый вариант (как "нельзя") выдал правильный результат: -1.9876, второй вариант - ошибку компиляции, а третий(который "только так и можно") дал нечто невразумительное - кучу смеющихся рожиц и в конце-число 1.9876. Мне даже непонятно, как у автора сообщения получился нормальный результат.Последний (4-ый, "мой" вариант) дал тоже верный результат: -1.9876
Follow this thread here :
Name :
Subject : RE: RE: RE: RE: RE: dodge city, 9-19-68 (pat riley) (joe urban) (vkubmniqa) (Char) (Trint)
E-mail :
Comments :
   
     
        

Site Index

© 2024 Victor Vilionis