Как построить объект из другого объекта, используя `*this`? [дублировать]C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Как построить объект из другого объекта, используя `*this`? [дублировать]

Сообщение Anonymous »

Я хотел бы инициализировать объект из уже существующего второго объекта, используя второй объект *This , но приведенный ниже код дает мне ошибку компиляции:

Код: Выделить всё

error: constructor for 'Banana' must explicitly initialize the member 'f' which does not have a default constructor

struct Apple {
int x;
Apple(const int x);
};

Apple::Apple(const int x) {
this->x = x;
}

struct Fuji : public Apple {
int y;
Fuji(const int x, const int y);
void get_banana();
};

Fuji::Fuji(const int x, const int y) : Apple(x) {
this->y = y;
}

struct Banana {
int z;
Fuji f;
Banana(const int z, Fuji f);
};

Banana::Banana(const int z, Fuji f) {
this->z = z;
this->f = f;
}

void Fuji::get_banana() {
auto banana = Banana(7, *this);
}
< /code>
Любое понимание будет высоко оценено. Спасибо.

Подробнее здесь: https://stackoverflow.com/questions/794 ... using-this
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»