Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   глюки с _fastcall (http://forum.oszone.net/showthread.php?t=46672)

jekazz 14-03-2005 17:11 306649

глюки с _fastcall
 
Создал класс, так, для тренеровки.
class string
{
char *data;
int size;
public:
string:string(const char *str="");
string& operator=(string&);
string& operator+=(string&);
string&operator+(string&);
//...................и т.д

~string();
};

Так вот, все работает, работает правильно, когда параметры передаются через стек. Но когда любую из функций или операторов сделать _fastcall начинаются глюки.
Например
string s1("1234");
string s2("5678");
string s3("abcd");
s1+=s2; //должно быть s1 = "12345678", а получается s2 = "56781234"

или еще круче:

s2+=s3;
s2=s1; //после этого s3 = "";

То же самое с функциями и с операторами, принимающими параметры int, const char*. В чем дело??? Без _fastcall все работает правильно!!!

pva 18-03-2005 12:36 307927

Как вы себе представляете действие оператора string& operator+(string&)?
По правилам c++ результат дейстаия вашего оператора уничтожается при на выходе и ссылка указывает в никуда.


Время: 09:31.

Время: 09:31.
© OSzone.net 2001-