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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 39, средняя оценка - 4.87
ching0n
3 / 3 / 1
Регистрация: 06.08.2013
Сообщений: 23
#1

Reference is ambiguous - C++

07.08.2013, 21:13. Просмотров 6504. Ответов 18
Метки нет (Все метки)

Всем доброго времени суток! Компилятор выдают ошибку в следующем коде:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
 
using namespace std;
 
struct distance
{
    int feet;
    float inches;
};
 
int main()
{
    distance d1; // Здесь выдаёт ошибку "reference to 'distance' is ambiguous"
    distance d3;
    distance d2 = { 11, 6.25 };
    ...
Подскажите, пожалуйста, в чём проблема.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.08.2013, 21:13     Reference is ambiguous
Посмотрите здесь:

Ошибка reference is ambiguous - C++
Объясните пожалуйста, в чем ошибка? #include &lt;iostream&gt; #include &lt;stdio.h&gt; #include &lt;fstream&gt; using namespace std; class...

Ошибки underfined reference to parentClass::method и unerfined reference to vtable при линковке - C++
При сборке компилятор выдает ошибки underfined reference to и unerfined reference to vtable. Есть базовый класс, два наследуемых от него и...

Ambiguous access to overloaded function - C++
Zdravstvuite,mogli li bi vi mne ob'qsnit' pochemy ne realiziruetsq kompilqtorom?Ponimaiu chto eto primitivno i v real'nosti v podobnoi...

Ambiguous call to overloaded function - C++
При использовании sqrt (да и других мат. функций(sin, cos, pow...) ) выдает ошибку, где говорится о неоднозначности. Скажем: ...

Error: call of overloaded ‘Function’ is ambiguous - C++
log.cpp:166:25: error: call of overloaded ‘localtime_r(time_t*, tm*)’ is ambiguous log.cpp:166:25: note: candidates are: ...

'sqrt' : ambiguous call to overloaded function - C++
здраствуйте! ошибка в заголовке. Чё то я запамятовал как указать компилятору какую именно версию функции использовать, думал так int...

Call of overloaded template function is ambiguous - C++
Добрый вечер. Есть два метода: template&lt;typename T, uint8_t count, bool msb = true, bool wait = true, typename U1, typename U2&gt; ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт CЭксперт С++
12980 / 7292 / 812
Регистрация: 27.09.2012
Сообщений: 18,007
Записей в блоге: 3
Завершенные тесты: 1
07.08.2013, 21:19     Reference is ambiguous #2
C++
1
using namespace std;
может отказаться от этого?
ching0n
3 / 3 / 1
Регистрация: 06.08.2013
Сообщений: 23
07.08.2013, 21:20  [ТС]     Reference is ambiguous #3
Croessmah, ты что! Как же я буду программировать без этого! Писать каждый раз перед cout или cin "std::" -- лень и неудобно.
Croessmah
Модератор
Эксперт CЭксперт С++
12980 / 7292 / 812
Регистрация: 27.09.2012
Сообщений: 18,007
Записей в блоге: 3
Завершенные тесты: 1
07.08.2013, 21:22     Reference is ambiguous #4
Цитата Сообщение от ching0n Посмотреть сообщение
Подскажите, пожалуйста, в чём проблема.
В пространстве имен std уже есть distance http://www.cplusplus.com/reference/iterator/distance/ отсюда и ошибка

Добавлено через 1 минуту
Цитата Сообщение от ching0n Посмотреть сообщение
Как же я буду программировать без этого!
Так же как и раньше
Цитата Сообщение от ching0n Посмотреть сообщение
Писать каждый раз перед cout или cin "std::" -- лень и неудобно.
есть просто using, если уж совсем в лом
C++
1
2
using std::cout ;
using std::cin ;
ching0n
3 / 3 / 1
Регистрация: 06.08.2013
Сообщений: 23
07.08.2013, 21:23  [ТС]     Reference is ambiguous #5
Croessmah, понятно. Переименовал на "dis" -- всё заработало! Спасибо!
Kastaneda
Форумчанин
Эксперт С++
4479 / 2841 / 227
Регистрация: 12.12.2009
Сообщений: 7,224
Записей в блоге: 1
Завершенные тесты: 1
07.08.2013, 21:24     Reference is ambiguous #6
Можно еще так
C++
1
2
3
4
5
6
7
8
9
namespace my {
struct distance
{
    int feet;
    float inches;
};
} 
...
my::distance d1;
Croessmah
07.08.2013, 21:26
  #7

Не по теме:

Цитата Сообщение от Kastaneda Посмотреть сообщение
Можно еще так
нельзя, ибо, using namespace my; даст туже ошибку, а без него нельзя:
Цитата Сообщение от ching0n Посмотреть сообщение
Как же я буду программировать без этого!
Цитата Сообщение от ching0n Посмотреть сообщение
Писать каждый раз перед cout или cin "std::" -- лень и неудобно.

Kastaneda
07.08.2013, 21:27
  #8

Не по теме:

Цитата Сообщение от Croessmah Посмотреть сообщение
нельзя, ибо, using namespace my; даст туже ошибку, а без него нельзя
точняк, ща еще подумаю

Croessmah
07.08.2013, 21:28
  #9

Не по теме:

Цитата Сообщение от Kastaneda Посмотреть сообщение
точняк, ща еще подумаю
можно
C++
1
::distance
еще писать, но опять же лишние двоеточия

Kastaneda
Форумчанин
Эксперт С++
4479 / 2841 / 227
Регистрация: 12.12.2009
Сообщений: 7,224
Записей в блоге: 1
Завершенные тесты: 1
07.08.2013, 21:29     Reference is ambiguous #10
во что придумал
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#define distance __distance
#include <iostream>
#undef distance 
 
using namespace std;
 
struct distance
{
    int feet;
    float inches;
};
 
int main()
{
    distance d1; 
    return 0;
}
ching0n, только некому не говори, что на cyberforum'е такое советуют
ching0n
07.08.2013, 21:34  [ТС]
  #11

Не по теме:

Харэ прикалываться!
Kastaneda,

Olivеr
411 / 407 / 13
Регистрация: 06.10.2011
Сообщений: 830
08.08.2013, 04:41     Reference is ambiguous #12
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
 
using namespace std;
 
struct distance
{
    int feet;
    float inches;
};
 
int main()
{
    using distance = ::distance;
    distance d1;
    return 0;
}
ching0n
3 / 3 / 1
Регистрация: 06.08.2013
Сообщений: 23
08.08.2013, 07:09  [ТС]     Reference is ambiguous #13
Olivеr, выдаёт ошибку: "expected nested-name-specifier before 'distance'"
Olivеr
411 / 407 / 13
Регистрация: 06.10.2011
Сообщений: 830
08.08.2013, 08:07     Reference is ambiguous #14
ching0n, http://ideone.com/jCwwgC
можно и тайпдефом
C++
1
typedef ::distance distance;
Croessmah
Модератор
Эксперт CЭксперт С++
12980 / 7292 / 812
Регистрация: 27.09.2012
Сообщений: 18,007
Записей в блоге: 3
Завершенные тесты: 1
08.08.2013, 09:54     Reference is ambiguous #15
Цитата Сообщение от ching0n Посмотреть сообщение
Olivеr, выдаёт ошибку: "expected nested-name-specifier before 'distance'"
C++11 ну или вариант с typedef'ом
Tulosba
:)
Эксперт С++
4392 / 3235 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
08.08.2013, 10:43     Reference is ambiguous #16
надо просто использовать distance до using namespace std;
Croessmah
08.08.2013, 11:38
  #17

Не по теме:

Цитата Сообщение от Tulosba Посмотреть сообщение
надо просто использовать distance до using namespace std;
Как можно пропустить святой using namespace std? Богохульник

bemol5
09.08.2013, 00:24
  #18

Не по теме:

Лучше не использовать namespace std вначале изучения С++ ?

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.08.2013, 01:17     Reference is ambiguous
Еще ссылки по теме:

Ошибка: ('sqrt' : ambiguous call to overloaded function) - C++
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;math.h&gt; using namespace std; int main() { setlocale(LC_ALL,...

Ambiguous call to overloaded function / рекурсивная функция - C++
Функция должна вызываться из движка на удаление связных списков. dellTree(Aster::tree); Далее она сама себя должна шерстать. void...

Error C2668: 'sqrt' : ambiguous call to overloaded function - C++
Собственно задание: треугольник задан координатами своих вершин. Найти его периметр и площадь Вот Код,но он почему не работате выдает...

Почему возникает ошибка? error: ambiguous overload for 'operator>>' - C++
class planet { protected: double distance; int revolve; public: planet(double d, int r) {distance=d; revolve=r;} };...

Странная перегрузка операторов (Error: ambiguous overload for 'operator[]') - C++
Что-то я туплю. Есть код: #include&lt;string&gt; struct test { int operator(const std::string&amp;)const{return 0;} operator...


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

Или воспользуйтесь поиском по форуму:
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
09.08.2013, 01:17     Reference is ambiguous #19
Цитата Сообщение от bemol5 Посмотреть сообщение
Не по теме:
Лучше не использовать namespace std вначале изучения С++ ?

Не по теме:

Использовать всё можно, но с умом.
fatal error LNK1169: one or more multiply defined symbols found

Yandex
Объявления
09.08.2013, 01:17     Reference is ambiguous
Ответ Создать тему
Опции темы

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