** 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. тогда копироваться по значению должно.
ну а вообще — "структуры" по значению — это жестоко.
|
|