C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
DynamicArray и объект со свойством AnsiString
** Tatiana
Отправлено: 19.10.2005, 05:25


Не зарегистрирован







CODE
class TIt{
private: // User declarations
 AnsiString fstr;
public:  // User declarations
//  AnsiString fstr;
 __property AnsiString str={read=fstr,write=fstr};
};

class TGr{
public:
DynamicArray <TIt> It;
};


CODE

TGr Gr;
Gr.It.Length=5;


При компиляции выдается ошибка
CODE
[C++ Error] sysdyn.h(285): E2328 Classes with properties cannot be copied by value
на строке
CODE
p[copyLen] = (*this)[copyLen];


Делаю свойство типа int — все нормально. Почему так и как с этим бороться?

Отредактировано olegenty — 19/10/2005, 07:32
olegenty
Отправлено: 19.10.2005, 06:35


Ветеран

Группа: Модератор
Сообщений: 2412



ну там же написано: классы со свойствами (property) не могут передаваться по значению. но можно не пользоваться паскалевскими приблудами, и property заменить на просто member. тогда копироваться по значению должно.

ну а вообще — "структуры" по значению — это жестоко.

Вернуться в Вопросы программирования в C++Builder