1296 / 469 / 151
Регистрация: 24.08.2011
Сообщений: 2,249
1

Error C2664: Client::First: невозможно преобразовать параметр 1 из "std::queue<_Ty>" в "std::queue<_Ty> &"

19.04.2015, 19:57. Показов 1493. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
barbershop.h:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#ifndef __BARBERSHOP_H__
#define __BARBERSHOP_H__
 
#include <vector>
#include <queue>
#include "wantshaircut.h"
#include "wantshaircutandshave.h"
using namespace std;
 
class Barbershop
{
public:
    Barbershop();
    void Work();
private:
    vector<int> barber;
    queue<WantsHaircut> haircut;
    queue<WantsHaircutAndShave> hairAndShave;
    void Fill(queue<WantsHaircut> &q);
    void Fill(queue<WantsHaircutAndShave> &q);
    static void ShowTime(int time);
};
 
#endif
Проблемная функция:
C++
1
2
3
4
5
6
7
8
9
void Barbershop::Work()
{
    int curTime = 0;
    while (curTime < 480)
    {
        queue<Client> &first = Client::First(haircut, hairAndShave),
            &second = Client::Second(haircut, hairAndShave);
    }
}
Ошибка возникает и на First, и на Second.

Описание функций:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
queue<Client>& Client::First(queue<Client> &q1, queue<Client> &q2)
{
    if (q1.front().start < q2.front().start)
        return q1;
    else
        return q2;
}
 
queue<Client>& Client::Second(queue<Client> &q1, queue<Client> &q2)
{
    if (q1.front().start >= q2.front().start)
        return q1;
    else
        return q2;
}
Что-то как-то нелогично. Констант нигде нет, типы очередей наследуют от Client. Посмотрите пожалуйста в чем проблема

Добавлено через 1 минуту
Убрала ссылки, теперь
error C2664: Client::First: невозможно преобразовать параметр 1 из "std::queue<_Ty>" в "std::queue<_Ty>"
Теперь совсем непонятно...

Добавлено через 1 час 24 минуты
актуально
реализовала через отдельные функции, то же самое
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.04.2015, 19:57
Ответы с готовыми решениями:

Error C2664: std::vector<_Ty>::push: невозможно преобразовать параметр 1 из 'double' в 'const std::string &'
#include &lt;iostream&gt; #include &lt;stack&gt; #include &lt;sstream&gt; #include &lt;string&gt; using namespace...

Error C2440 std::vector<_Ty>
класс CFilename class CFilename { public: CFilename() { } CFilename(const char*...

Error C2039: 'Sth' : is not a member of 'std::vector<_Ty>'
#include &lt;iostream&gt; #include &lt;vector&gt; using std::cin; using std::cout; using std::endl; using...

Что означает запись типа template<typename _Ty, size_t size> void foo(_Ty(&param)[size])?
Что означает такая запись(какой тип передается, что-то вроде ссылки на массив или что-нибудь ещё?):...

3
7785 / 6553 / 2983
Регистрация: 14.04.2014
Сообщений: 28,624
19.04.2015, 20:08 2
А почему curTime не меняется?
0
Жарю без масла
867 / 749 / 225
Регистрация: 13.01.2012
Сообщений: 1,702
19.04.2015, 20:16 3
Лучший ответ Сообщение было отмечено MayaNash как решение

Решение

C++
1
2
3
queue<Client>
queue<WantsHaircut>
queue<WantsHaircutAndShave>
это три разных типа. хотите наследование - используйте queue<Client*>. ваш класс будет похож на
C++
1
2
3
4
5
6
7
8
9
10
11
class Barbershop
{
public:
    // ...
    
private:
    queue<Client*> haircut;
    queue<Client*> hairAndShave;
    void Fill(queue<Client*> &q);
    void Fill(queue<Client*> &q);
};
2
1296 / 469 / 151
Регистрация: 24.08.2011
Сообщений: 2,249
19.04.2015, 20:23  [ТС] 4
nmcf, потому что ту функцию я только начала
retmas, благодарю
0
19.04.2015, 20:23
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.04.2015, 20:23
Помогаю со студенческими работами здесь

Невозможно преобразовать аргумент из _Ty в const Gene
Здравствуйте! В качестве побочной задачи для проекта нужно написать реализацию генетического...

error C2664:невозможно преобразовать параметр
/*************************************************** * Программа: Квадратный трехчлен ...

error C2664: невозможно преобразовать параметр
Здравствуйте. Отправьте меня если что в другую тему, где это обсуждалось, но я не понимаю, в чем...

Error C2664: невозможно преобразовать параметр
Здравствуйте! У меня вот такая проблема. Функция должна возвращать &quot;1&quot; в случае, если символ &quot;c&quot;...

error C2664:невозможно преобразовать параметр
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; using namespace std; #include &lt;cstring&gt; #define q 250 ...

Bug msvc2010 ? error C2752: std::tr1::_Remove_reference<_Ty>
Привет) Сегодня баг поинтереснее)) Компиляторы msvc2010 не умеют правильно обращаться с типами...

Error C2664: auxDIBImageLoadW: невозможно преобразовать параметр
Все время, когда хочу загрузить изображение, мне выдает такую ошибку - .\Game_test.cpp(185) :...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru