странное поведение синонимов класов
Запись от MrAndrey_ka размещена 23.11.2014 в 16:28
Цитата:
да но так вылазит следующая проблема:
елси написать
GT2 = L"qqqq"+GT2; GT2 = B+GT2; в обеих случаях произойдет вызов первого оператора а вот если
и чтобы перекрыть это поведение во втором случае придется писать еще 2 оператора inline friend TSmartString operator + (Type* Val1 const, const TSmartString& Val2); и inline friend TSmartString operator + (Type* Val1, const TSmartString& Val2); а это 3 идентичных функции с одинаковым кодом, и тоже самое придется делать для остальных операторов =, +=, << что вовсе не к месту. Вообще то данный принцип подсмотрел у того же CString Не знаю на долго ли но пока помогло вот что: добавил typedef typename const Type* PС_Str; и соответственно 2 3 4 5 P_Str *Buf = NULL; void SetValue(size_t Size, PС_Str Val, size_t Len); VRTSmartStr(PС_Str Val, size_t Size = 0); |
Всего комментариев 0
Комментарии