Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Sor
35 / 35 / 0
Регистрация: 24.11.2011
Сообщений: 309
#1

Перегрузка функции, почему вызов неоднозначен? - C++

21.03.2013, 16:18. Просмотров 453. Ответов 7
Метки нет (Все метки)

Добрый день, столкнулся с проблемой, объясните ее причину.
Делаю перегрузку
C++ (Qt)
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
void Save_to_file (QString FileName, int FileIndex,float data) //Сохранение в файл данных из базы float
    {
        QString Ind;
        Ind.setNum(FileIndex);
        QFile File("D://Cells//"+FileName+Ind+".txt");
 
        File.open(QIODevice::Append | QIODevice::Text); //открываем файл для записи в конец
        QTextStream out(&File);
        out << data;
        out << "\n";
        File.close();
 
    }
void Save_to_file (QString FileName, int FileIndex,int data) //Сохранение в файл данных из базы int
    {
        QString Ind;
        Ind.setNum(FileIndex);
        QFile File("D://Cells//"+FileName+Ind+".txt");
 
        File.open(QIODevice::Append | QIODevice::Text); //открываем файл для записи в конец
        QTextStream out(&File);
        out << data;
        out << "\n";
        File.close();
 
    }
вызов:
C++ (Qt)
1
Save_to_file("Square",dirIndex,R.ThingArray()[MaxSize].Square);
Пишет, что вызов неоднозначен, кандидаты 2 вышеупомянутые функции.
Так перегрузка на то и нужна, что б я не думал какую вызывать, почему же упрямится?
Заранее спасибо.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.03.2013, 16:18
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Перегрузка функции, почему вызов неоднозначен? (C++):

перегрузка (вызов второй функции) - C++
Добрый день!!! не могли бы помочь доработать программу на с++? необходимо осуществить вызов второй функции...ребята, девчата, подскажите,...

Почему вызывается перегрузка виртуальной функции из приватной секции дочернего класса? - C++
Как вообще такое происходит class A { public: virtual void foo(){std::cout&lt;&lt;&quot;A\n&quot;; } }; class B:public A { private: ...

Есть объект типа T, но если вместо него подставить вызов функции, возвращающей T, код не компилится, почему? - C++
Есть объект типа vector&lt;int&gt;, но если вместо него подставить вызов функции, возвращающей vector&lt;int&gt;, код не компилится (template мутит...

Перегрузка в виде метода VS Перегрузка в виде функции друг - C++
Привет! Собственно сабж: В каких случаях используется перегрузка в виде метода, а когда в виде функции друг? Добавлено через 4...

Вычислить функции с использованием их разложения в степенной ряд. Функции и Перегрузка функций - C++
Добрый день. Дана лабораторная работа, (см. ниже 2 скриншота) по заданию нужно вычислить функции с использованием их разложения в степенной...

Перегрузка оператора.Почему так происходит? - C++
У нас есть перегрузка оператора. Digit operator-(const Digit &amp;N) { Digit temp; temp.dig=dig-N.dig; return temp; } ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Toshkarik
1141 / 858 / 51
Регистрация: 03.08.2011
Сообщений: 2,384
Завершенные тесты: 1
21.03.2013, 16:22 #2
Какой тип возвращает это
C++
1
R.ThingArray()[MaxSize].Square
?
0
Sor
35 / 35 / 0
Регистрация: 24.11.2011
Сообщений: 309
21.03.2013, 16:22  [ТС] #3
int
0
Toshkarik
1141 / 858 / 51
Регистрация: 03.08.2011
Сообщений: 2,384
Завершенные тесты: 1
21.03.2013, 16:23 #4
Полный лог ошибок выложите.
0
Sor
35 / 35 / 0
Регистрация: 24.11.2011
Сообщений: 309
21.03.2013, 16:25  [ТС] #5
..\DefineTheCell\mainwindow.cpp: In member function 'void MainWindow::on_pushButton_2_clicked()':
..\DefineTheCell\mainwindow.cpp:294:70: error: call of overloaded 'Save_to_file(const char [7], int&, const size_t&)' is ambiguous
..\DefineTheCell\mainwindow.cpp:294:70: note: candidates are:
..\DefineTheCell\/mainwindow.h:142:10: note: void MainWindow::Save_to_file(QString, int, int)
..\DefineTheCell\/mainwindow.h:155:10: note: void MainWindow::Save_to_file(QString, int, float)

Без перегрузки все работает замечательно
0
ISergey
Maniac
Эксперт С++
1374 / 885 / 52
Регистрация: 02.01.2009
Сообщений: 2,658
Записей в блоге: 1
21.03.2013, 16:25 #6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
template < typename T >
void Save_to_file (const QString &FileName, int FileIndex, const T &data) //Сохранение в файл данных из базы float
    {
        QString Ind;
        Ind.setNum(FileIndex);
        QFile File("D://Cells//"+FileName+Ind+".txt");
 
        File.open(QIODevice::Append | QIODevice::Text); //открываем файл для записи в конец
        QTextStream out(&File);
        out << data;
        out << "\n";
        File.close();
 
    }
Так не?
1
Toshkarik
1141 / 858 / 51
Регистрация: 03.08.2011
Сообщений: 2,384
Завершенные тесты: 1
21.03.2013, 16:27 #7
Цитата Сообщение от Sor Посмотреть сообщение
const size_t&
Это не int. В общем случае это unsigned int. И компилятор не знает к какому виду приводить.
1
Sor
35 / 35 / 0
Регистрация: 24.11.2011
Сообщений: 309
21.03.2013, 16:33  [ТС] #8
Цитата Сообщение от ISergey Посмотреть сообщение
Так не?
так да.
Toshkarik, да, ошибся. это size_t.

спасибо
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.03.2013, 16:33
Привет! Вот еще темы с ответами:

Почему в коде не работает перегрузка операторов? - C++
Почему не работает перегрузка? #include &lt;iostream&gt; #include &lt;vector&gt; using namespace std;

Перегрузка функций и операторов, почему программа не работает? - C++
Помогите пожалуйста разобраться почему не работает программа? Создать класс 2-D координат. Определить операторы &quot;+&quot; и &quot;-&quot; как...

перегрузка постфикса ++ для работы с массивом (почему-то не пашет) - C++
#include &lt;iostream.h&gt; class arr { public: arr(int number); ~arr(); void Vivod(); arr operator++ (int); private: int...

Вызов функции внутри другой функции с передачей локальной переменной по ссылке - C++
Столкнулся с очень с интересной проблемой. Можно ли так делать? #include &lt;iostream&gt; using std::cout; void f(const int &amp;ref){...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
21.03.2013, 16:33
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru