Оператор присваивания с перегрузкой C ++

У меня есть класс с именем Location , и мне нужно было добавить CArray к его переменным-членам. Это изменение вызвало необходимость перегрузки оператора присваивания.

Есть ли способ скопировать все переменные этого типа класса, которые копировались до того, как я внес изменение, и просто добавить дополнительный код для копирования CArray без копирования каждой отдельной переменной-члена по отдельности?

Location& Location::operator=(const Location &rhs) 
{
    // Only do assignment if RHS is a different object from this.
    if (this != &rhs) 
    {
        //Copy CArray
        m_LocationsToSkip.Copy(rhs.m_LocationsToSkip);

        //Copy rest of member variables
        //I'd prefer not to do the following
        var1 = rhs.var1;
        var2 = rhs.var2;
        //etc
    }

    return *this;
}
5
задан Daniel Fischer 14 January 2012 в 23:48
поделиться