2015-08-09 3 views
-3

В моем классе есть некоторые частные и публичные элементы. Теперь, как я могу поменять два объекта класса? Я написал функцию подкачки, как это в моем классе:Обмен двумя объектами класса

void swap(class &A,class &B) 
{ 
class temp=*A; 
*A=*B; 
*B=temp; 
} 

может эта функция замены всех элементов (даже частные один или нет)

+0

Как связаны «A» и «B»? Какие конструкторы копирования предоставляются? –

+0

A и B - это два объекта класса, и я хочу поменять их значение. – stella

+3

Этот синтаксис недействителен C++. –

ответ

1

class не может быть использован в качестве имени типа?. Вам не нужно использовать * по ссылкам.

void swap(T& a, T& a) 
{ 
    T temp = a; 
    a = b; 
    b = temp; 
} 

Это работает только в том случае, если ваш оператор присваивания и конструктор копирования верны для вашего класса. Поскольку эти методы являются членами класса, не имеет значения, есть ли у вас личные данные или нет.

+0

спасибо john, могу ли я использовать эту функцию подкачки в статической функции этого класса? – stella

+4

@stella Вам не нужна эта функция. Он делает то же самое, что и 'std :: swap'. – juanchopanza

+0

спасибо juanchopanza, что такое библиотека функций обмена? – stella

Смежные вопросы