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

Ошибка "неоднозначный вызов перегруженной функции" - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Дана последовательность чисел а1, а2, ..., аn. Требуется переставить числа в порядке возрастания. http://www.cyberforum.ru/cpp-beginners/thread699804.html
Сортировка вставками. Дана последовательность чисел а1, а2, ..., аn. Требуется переставить числа в порядке возрастания. Делается это следующим образом. Пусть а1, а2, ..., аi —упорядоченная последовательность, т.е. a1 <= а2<= ... <= аi Берется следующее число ai+1 и вставляется в последовательность так, чтобы новая последовательность была также возрастающей. Процесс производится до тех пор, пока...
C++ Определить кольцо с центром в начале координат, которое содержит все точки В одномерном массиве с четным количеством элементов (2N) находятся координа-ты N точек плоскости. Они располагаются в следующем порядке: x1, y1, х2, у2, х3, у3, и т.д. Определить кольцо с центром в начале координат, которое содержит все точки. http://www.cyberforum.ru/cpp-beginners/thread699792.html
Напечатать элементы массива в виде двух параллельных столбцов C++
В одномерном массиве размещены: в первых элементах значения аргумента, в сле-дующих — соответствующие им значения функции. Напечатать элементы этого массива в виде двух параллельных столбцов (аргумент и значения функции).
C++ Вывести каждое второе слова в котором больше 3 букв и меньше 3 гласных
Нужно вывести каждое второе слово в котором больше трех букв при этом меньше 3 гласных. Я написал прогу которая выводит каждое слово в котором больше трех букв и меньше 3 гласных, но не могу сделать так что бы выводить только каждое второе такое слово. Помогите, плиз! #include <string> #include<conio.h> #include <iostream> int main (){ using namespace std;
C++ Определить, принадлежат ли точки прямой прямоугольнику http://www.cyberforum.ru/cpp-beginners/thread699781.html
Даны x1, x2, a, b, a, b, c, x, y – вещественные числа. Определить, принадлежат ли точки прямой ax+by+c=0 прямоугольнику с вершиной(левой верхней) (x1, y1), (x2, y2) и длинами сторон a, b. Каким образом можно реализовать?
C++ Скопировать из файла F1 в фаил F2 те строки Скопировать из файла F1 в фаил F2 те строки, в которых встречается хотя бы одно слово из последней строки F1 подробнее

Показать сообщение отдельно
Снусмумрик
 Аватар для Снусмумрик
67 / 3 / 1
Регистрация: 15.11.2012
Сообщений: 20
17.11.2012, 00:17     Ошибка "неоднозначный вызов перегруженной функции"
После того как компилятор нашел функции pow (их целых три) он должен выбрать одну, которая лучше всего подходит для вызова. Он составляет список кандидатов и делает следующие вещи (за строгую последовательность компилятора VC не ручаюсь):
1. Исключает недоступные функции (private и т.д.);
2. Исключает функции с не тем числом параметров;
3. Исключает функции, чьи параметры не могут быть преобразованы в аргументы вызова;
4. Исключает функции, для которых требуется сужающее преобразование;
5. Исключает функции, которые требует расширения аргументов(или большего расширения, чем другие функции).
После этого должна остаться только одна функция. Если их больше, то возникает ошибка. В Вашем случае возникает странная вещь, так как double, float и long double требуют разного расширения. По крайней мере g++ не ругается. Наверное, у Вас стоит VC 5, 6 или 7. Для них double и long double - один и тот же тип. Поэтому у него после выполнения всех пунктов остались две функции, и он не может выбрать, какую ему вызвать.

Попытка передать 10.0 тоже не работает, т.к. не указывает явно, какой это тип, а объявление double val - указывает.
Примерно так)
 
Текущее время: 21:54. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru