Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Двусмысленность перегрузки функции 
V
    Опции темы
Devourer
Дата 2.9.2009, 15:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 95
Регистрация: 23.8.2008

Репутация: нет
Всего: нет



При компиляции выдаетсся ошибка: двусмысленный вызов конструктора pictureShow. Не понимаю почему не рботает перегрузка?
Помогите ПЛЗ.

Код

#include <QtGui/QApplication>
#include "pictureshow.h"
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    pictureShow *w = new pictureShow;
    w->show();
    return a.exec();
}



*cpp
Код

#include "pictureshow.h"
#include <QObject>
#include <QtGui>

pictureShow::pictureShow()
{
}

pictureShow::pictureShow(QString *path)
{
}


pictureShow::~pictureShow()
{
}




*h
Код

#ifndef PICTURESHOW_H
#define PICTURESHOW_H

#include <QDialog.h>

class pictureShow : public QDialog
{
    Q_OBJECT

public:
    pictureShow();
    pictureShow(QString *path = " ");
    ~pictureShow();

};
#endif // PICTURESHOW_H



Это сообщение отредактировал(а) Devourer - 2.9.2009, 15:28
PM MAIL ICQ   Вверх
17dufa
Дата 2.9.2009, 15:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 324
Регистрация: 2.3.2006

Репутация: 3
Всего: 5



Devourer, 


Это сообщение отредактировал(а) 17dufa - 2.9.2009, 15:21
PM MAIL   Вверх
Cheloveck
Дата 2.9.2009, 15:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1578
Регистрация: 26.7.2008
Где: Тула

Репутация: 3
Всего: 32



так у тебя значение по умолчанию. Компилятор не знает, что вызвать, либо пустой, либо ты намеренно опустил дефолт значение.


--------------------
user posted image
PM Jabber   Вверх
andrew_121
Дата 2.9.2009, 15:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

Репутация: 6
Всего: 33



во первых:
Цитата(Devourer @  2.9.2009,  15:17 Найти цитируемый пост)
pictureShow 

наследник от 
Цитата(Devourer @  2.9.2009,  15:17 Найти цитируемый пост)
QDialog



во вторых:
Код

pictureShow(); //  конструктор по умолчанию
pictureShow(QString *path = " "); // аргумент по умолчанию. какой из них использовать компилятору?



--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
Devourer
Дата 2.9.2009, 15:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 95
Регистрация: 23.8.2008

Репутация: нет
Всего: нет



А как сделать чтобы он вызывал тот который мне нужен? Тоесть пустой.

Это сообщение отредактировал(а) Devourer - 2.9.2009, 15:43
PM MAIL ICQ   Вверх
andrew_121
Дата 2.9.2009, 15:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

Репутация: 6
Всего: 33



опоздал

Добавлено через 1 минуту и 32 секунды
Цитата(Devourer @  2.9.2009,  15:41 Найти цитируемый пост)
А как сделать чтобы он выхывал тот котрый мне нужен? 

убери значение по умолчанию

Добавлено через 4 минуты и 18 секунд
если объект наследник от QWidget, то нужно передавать указатель на объект предок.



--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
Devourer
Дата 2.9.2009, 15:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 95
Регистрация: 23.8.2008

Репутация: нет
Всего: нет



Тоесть? Я не совсем представляю как это сделать....
PM MAIL ICQ   Вверх
Alek86
Дата 2.9.2009, 15:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1299
Регистрация: 30.1.2007
Где: Киев

Репутация: 21
Всего: 25



потому что компилятор не знает, какой ты конструктор хотел вызвать: первый без парамера или второй с параметром по умолчанию
да и я, к примеру, не могу сказать точно, что ты хотел вызвать

лучше всего убрать во втором конструкторе умолчание


--------------------
user posted image    user posted image
PM MAIL   Вверх
Devourer
Дата 2.9.2009, 15:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 95
Регистрация: 23.8.2008

Репутация: нет
Всего: нет



сори за ленность но как это сделать?
Тут должен вызываться конструктор без стринга...
PM MAIL ICQ   Вверх
andrew_121
Дата 2.9.2009, 15:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

Репутация: 6
Всего: 33



Код

class pictureShow : public QDialog
{
    Q_OBJECT
public:
    pictureShow(QWidget* w = NULL);
    pictureShow(QWidget* w, QString *path);
    ~pictureShow();
};


Добавлено через 1 минуту и 23 секунды
Цитата(Devourer @  2.9.2009,  15:17 Найти цитируемый пост)
QString *path = " "

так это еще и указатель на QString?! smile 


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
Devourer
Дата 2.9.2009, 16:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 95
Регистрация: 23.8.2008

Репутация: нет
Всего: нет



если не лень напишите как это должно быть... smile 
PM MAIL ICQ   Вверх
andrew_121
Дата 2.9.2009, 16:12 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

Репутация: 6
Всего: 33



.h
Код

class pictureShow : public QDialog
{
    Q_OBJECT
public:
    pictureShow(QWidget* w = NULL);
    pictureShow(QWidget* w, QString *path);
    ~pictureShow();
};


.cpp
Код

#include "pictureshow.h"
#include <QObject>
#include <QtGui>

pictureShow::pictureShow(QWidget* w):QDialog(w) {
}

pictureShow::pictureShow(QWidget* w, QString *path):QDialog(w) {
}

pictureShow::~pictureShow() {
}

еще не понятно зачем тебе указатель на QString ?


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
Devourer
Дата 2.9.2009, 16:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 95
Регистрация: 23.8.2008

Репутация: нет
Всего: нет



СПС
Там дальше в коде используется, почему именно указатель указатель, наверно уже привычка...

Еще раз спс...
PM MAIL ICQ   Вверх
andrew_121
Дата 2.9.2009, 16:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

Репутация: 6
Всего: 33



Devourer, Тему закрой.


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0550 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.