class b
{
public:
b(a param); //конструктор
void f();
private:
a data;
};
b::b(a param)
{
data=param;
}
b::f()
{
//чтото делаем с data, не важно..
}
это работает, но вот что смущает:
в конструкторе вроде как происходит поразрядное копирование структуры, т.е. копируется адрес объекта AnsiString из param в data
затем param выходит из области видимости и уничтожается, s в data теперь указывает на мусор? или всетаки копируется объект AnsiString?
Здравствуйте, iskatel, Вы писали:
I>в конструкторе вроде как происходит поразрядное копирование структуры,
В конструкторе происходит присваивание с помощью оператора =. Дефолтовый оператор = в С++ копирует объекты почленно. Поэтому все работает и поэтому всячески не рекомендуют использовать для копирования объектов memcpy (которая копирует побитово).
Здравствуйте, iskatel, Вы писали:
I>тоесть смоздастся новый объект AnsiString уже в data? значит я написал правильно и так параметры классу передавать можно, риска нет?