@sddvxd

Почему не работает этот код с ссылками?

Добрый вечер
#include <iostream>
#include <string>
#include "kwat.h"
using namespace std;

KWat& swap(KWat&, const KWat&);
void display(KWat&);

int main(){

  KWat box1(200,4.3,18);
  KWat box2(500,5.0,20);
  display(swap(box1,box2));
}

KWat& swap(KWat& ob, const KWat& cob){
  ob.price = cob.price;
  return ob;
}


void display(KWat& ob){
  cout<<"Price of box1: "<<ob.price;
}


Компилятор говорит: invalid use of void expression
Ломаю голову, не могу понять что ему не нравится. Методу же задал возвращаемое значение в виде ссылки на объект
  • Вопрос задан
  • 110 просмотров
Решения вопроса 1
terrier
@terrier
using namespace std;

Вот не надо так делать и не будет подставляться std::swap (который как известно возвращает void) вместо вашего варианта swap
P.S. Ну, и, конечно сама функция swap, которая не свапает - это тоже достойно.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы