Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/47: Рейтинг темы: голосов - 47, средняя оценка - 4.72
1 / 1 / 1
Регистрация: 12.08.2014
Сообщений: 65
1

"no matching function for call to" ошибка в вызове конструктора

21.10.2016, 08:10. Показов 9014. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
имеется следующий класс

Кликните здесь для просмотра всего текста
makeworldtemplate.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#ifndef MAKEWORLDTEMPLATE_H
#define MAKEWORLDTEMPLATE_H
 
#include <list>
 
class MakeWorldTemplate{
public:
    using MWT_USI = unsigned short int;
    using MWT_SI = unsigned int;
 
    MakeWorldTemplate(MWT_SI **map, MWT_USI width, MWT_USI height, MWT_USI templateWidth, MWT_USI templateHeight);
    ~MakeWorldTemplate();
private:
    MWT_USI m_mapWayWidth, m_mapWayHeight;
    MWT_USI m_GlobalMapWidth, m_GlobalMapHeight;
    MWT_USI m_TemplateWidth, m_TemplateHeight;
 
    MWT_SI **m_GlobalMap;
};
 
#endif // MAKEWORLDTEMPLATE_H
makeworldtemplate.cpp
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
25
26
27
28
29
30
31
#include "makeworldtemplate.h"
 
MakeWorldTemplate::MakeWorldTemplate(MWT_SI **map, MWT_USI width, MWT_USI height, MWT_USI templateWidth, MWT_USI templateHeight){
    m_mapWayHeight = height;
    m_mapWayWidth = width;
 
    m_TemplateWidth = templateWidth;
    m_TemplateHeight = templateHeight;
 
    m_GlobalMapWidth = m_mapWayWidth * m_TemplateWidth;
    m_GlobalMapHeight = m_mapWayHeight * m_TemplateHeight;
 
    m_GlobalMap = new MWT_SI*[m_GlobalMapHeight];
    for (MWT_USI i = 0; i < m_GlobalMapHeight; i++)
        m_GlobalMap = new MWT_SI[m_GlobalMapWidth];
 
    for (MWT_USI i = 0; i < m_GlobalMapHeight; i++)
        for (MWT_USI j = 0; j < m_GlobalMapWidth; j++)
            m_GlobalMap[i][j] = -1;
 
    for (MWT_USI i = 0; i < m_GlobalMapHeight; i++)
        for (MWT_USI j = 0; j < m_GlobalMapWidth; j++)
            std::cout << m_GlobalMap[i][j];
 
}
 
MakeWorldTemplate::~MakeWorldTemplate(){
    for (MWT_USI i = 0; i < m_GlobalMapHeight; i++)
        delete [] m_GlobalMap[i];
    delete [] m_GlobalMap;
}


вызов конструктора:

Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
genMapWay mapp(16, 16, 1);
    mapp.startGeneration();
    mapp.drawMap();
 
    MakeWorldTemplate mwt(mapp.getMap(), mapp.getMapWidth(), mapp.getMapHeight(), 4, 4);


когда я вызываю конструктор выдает ошибку:
Кликните здесь для просмотра всего текста
/home/eskry/Map_Generator_2/main.cpp:15: ошибка: no matching function for call to ‘MakeWorldTemplate::MakeWorldTemplate(genMapWay::GMW_SI**, genMapWay::GMW_SI, genMapWay::GMW_SI, int, int)’
MakeWorldTemplate mwt(mapp.getMap(), mapp.getMapWidth(), mapp.getMapHeight(), 4, 4);
^


Делаю в Qt IDE
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.10.2016, 08:10
Ответы с готовыми решениями:

Исправить ошибку "no matching function for call" при использовании конструктора
Здравствуйте, ребята. Такая проблема. Объявил класс class phoneClass { private: float ...

Ошибка: no matching function for call
Добрый вечер! Только начинаю изучать с++, задали написать программу-пример, которая показывает что...

Ошибка no matching function for call
Здравствуйте, не могу понять почему выдает ошибку. текст ошибки : no matching function for call...

Ошибка: no matching function for call to
Здравствуйте. Вот такая ошибка: /usr/include/c++/4.8/bits/stl_algo.h:2235:62: required from...

6
Модератор
Эксперт С++
13507 / 10757 / 6412
Регистрация: 18.12.2011
Сообщений: 28,714
21.10.2016, 08:19 2
Цитата Сообщение от Harterbreed Посмотреть сообщение
genMapWay mapp(16, 16, 1);
Я к Вас в упор не вижу конструктора с 3 параметрами
Есть
Цитата Сообщение от Harterbreed Посмотреть сообщение
MakeWorldTemplate::MakeWorldTemplate(MWT_SI **map, MWT_USI width, MWT_USI height, MWT_USI templateWidth, MWT_USI templateHeight){
и все!!!

И не видно, как genMapWay связан с MakeWorldTemplate?
0
1 / 1 / 1
Регистрация: 12.08.2014
Сообщений: 65
21.10.2016, 08:24  [ТС] 3
Цитата Сообщение от zss Посмотреть сообщение
И не видно, как genMapWay связан с MakeWorldTemplate?
genMapWay генерирует матрицу которая входит в первый аргумент конструктора MakeWorldTemplate, ну и передает размеры, даже без этого класса, ошибка остается та же
0
Модератор
Эксперт С++
13507 / 10757 / 6412
Регистрация: 18.12.2011
Сообщений: 28,714
21.10.2016, 08:26 4
Так есть ли в genMapWay конструктор с 3 целочисленными параметрами?
0
1 / 1 / 1
Регистрация: 12.08.2014
Сообщений: 65
21.10.2016, 09:06  [ТС] 5
Цитата Сообщение от zss Посмотреть сообщение
Так есть ли в genMapWay конструктор с 3 целочисленными параметрами?
да есть вот его прототип

C++
1
2
3
using GMW_SI = short int;
using GMW_USI = unsigned short int;
genMapWay(GMW_SI width = 16, GMW_SI height = 16, GMW_USI genCycles = 1);
Добавлено через 35 минут
Цитата Сообщение от zss Посмотреть сообщение
Так есть ли в genMapWay конструктор с 3 целочисленными параметрами?
вот класс genMapWay полностью

Кликните здесь для просмотра всего текста
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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#ifndef GENMAPWAY_H
#define GENMAPWAY_H
 
#include <iostream>
#include <fstream>
#include <string>
#include <sstream>
 
class genMapWay{
public:
    using GMW_SI = short int;
    using GMW_USI = unsigned short int;
 
    // TODO: Написать сохранение в фаил
 
    /*
     * Класс представляет генерацию пути на созданной матрице
     */
 
    enum BuilderDirection{
        NONE,
        UP,
        DOWN,
        LEFT,
        RIGHT
    };
 
    genMapWay(GMW_SI width = 16, GMW_SI height = 16, GMW_USI genCycles = 1);
    ~genMapWay();
 
    void drawMap() const;
    bool startGeneration();
 
    GMW_USI getGenCycles() const;
    GMW_SI getMapHeight() const;
    GMW_SI getMapWidth() const;
    GMW_SI** getMap();
 
    void saveToFile(char *fileName, GMW_USI randNames = 1) const;
 
private:
 
    GMW_SI **m_map; // Map
    GMW_SI m_mapWidth, m_mapHeight; // Map Size
 
    GMW_USI m_genCycles; // Количество проходов Default: 1
 
    BuilderDirection getRandomDirection() const;
    std::string getRandomFileName() const;
 
 
    GMW_SI getDirectionToMap(GMW_USI valueRand, GMW_USI &cursorPosX, GMW_USI &cursorPosY);
 
};
 
#endif // GENMAPWAY_H
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
genMapWay::genMapWay(GMW_SI width, GMW_SI height, GMW_USI genCycles){
    m_mapWidth = width;
    m_mapHeight = height;
    m_genCycles = genCycles;
    m_map = nullptr;
 
    GMW_SI **tempWorld = new GMW_SI*[height];
    for (GMW_SI i = 0; i < m_mapHeight; i++)
        tempWorld[i] = new GMW_SI[width];
 
    for (GMW_SI i = 0; i < m_mapHeight; i++)
        for(GMW_SI j = 0; j < m_mapWidth; j++)
            tempWorld[i][j] = 0;
 
    m_map = tempWorld;
}
 
genMapWay::GMW_SI** genMapWay::getMap(){
    return m_map;
}
0
Вездепух
Эксперт CЭксперт С++
11696 / 6375 / 1724
Регистрация: 18.10.2014
Сообщений: 16,071
21.10.2016, 09:15 6
Лучший ответ Сообщение было отмечено Harterbreed как решение

Решение

Цитата Сообщение от Harterbreed Посмотреть сообщение
вот класс genMapWay полностью
Вы пытаетесь передавать результат mapp.getMap(), который имеет тип genMapWay::GMW_SI ** (short int **), первым параметром в конструктор MakeWorldTemplate, который хочет MakeWorldTemplate::MWT_SI ** (unsigned int **).

Вот и вся ошибка. Что вы хотели этим сказать?
1
1 / 1 / 1
Регистрация: 12.08.2014
Сообщений: 65
21.10.2016, 09:21  [ТС] 7
Цитата Сообщение от TheCalligrapher Посмотреть сообщение
Вот и вся ошибка. Что вы хотели этим сказать?
это я уже накосячил, написал не тот тип, спасибо, так заработало.
0
21.10.2016, 09:21
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.10.2016, 09:21
Помогаю со студенческими работами здесь

Ошибка no matching function for call to 'MessageBoxW'
void __fastcall TForm1::MNewClick(TObject *Sender) { // открытие нового окна if(Memo1-&gt;Modified)...

Ошибка error: no matching function for call to '.'
Всем привет. Так как моё изучение языка с++ началось недавно, пока не со всеми проблемами могу...

Ошибка no matching function for call to 'fopen'
Полный текст ошибки: Unit3.cpp(115): no matching function for call to 'fopen' stdio.h(258):...

Ошибка: no matching function for call to 'CharToOemW'
Помогите найти исправить ошибку #pragma hdrstop #pragma argsused #include &lt;iostream&gt; #include...

Ошибка no matching function for call to 'StrToFloat'
Всем привет. В общем столкнулся с такой ошибкой как: no matching function for call to 'StrToFloat'...

Ошибка компиляции: no matching function for call
В классе объявлено 4 конструктора: MyClass() = default; explicit MyClass(const...


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

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