Проблема перегрузки оператора двоичного дерева назначения C ++

Вы можете реализовать дедуктор Gesture, и в своем onfling-событии вы получите два параметра из класса MotionEvent. Вы можете получить от них координаты x и y. Посмотрите на это сообщение для более подробной информации

Обнаружение жевательной жесты на макете сетки

0
задан Mihail Yonchev 18 March 2019 в 22:38
поделиться

1 ответ

При условии, что конструктор копирования и деструктор для BST работают правильно (и что конструктор копирования не использует оператор присваивания), оператор присваивания BST можно легко написать с помощью идиома копирования / замены [ 117]:

#include <algorithm>
//...
BST& BST::operator=(const BST &rhs) 
{
    if ( &rhs != this )  // for optimization purposes, check for self assignment
    {
        BST temp(rhs);  // copy the rhs (uses copy constructor)
        std::swap(temp.root, root);  // swap out the members (root with temp.root)
    } // temp now dies off with the old data (uses destructor)
    return *this;   
} 

Обратите внимание, что все, что мы сделали, это создали временный (именно поэтому конструктор копирования должен работать должным образом). Затем поменяйте местами this членов с членами временного. Как только это сделано, когда temp уничтожено, оно забирает старые данные (именно поэтому деструктор должен работать должным образом).

Если есть больше членов, то вам также нужно поменять их местами (я предполагаю, что единственная переменная-член в BST - это root).

0
ответ дан PaulMcKenzie 18 March 2019 в 22:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: