![]() |
глюки с _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 все работает правильно!!! |
Как вы себе представляете действие оператора string& operator+(string&)?
По правилам c++ результат дейстаия вашего оператора уничтожается при на выходе и ссылка указывает в никуда. |
Время: 09:31. |
Время: 09:31.
© OSzone.net 2001-