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

Странная перегрузка операторов (Error: ambiguous overload for 'operator[]') - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Заполнить двухмерный вектор таблицей умножения и вывести его в выходной поток http://www.cyberforum.ru/cpp-beginners/thread1223644.html
Заполнить двухмерный вектор таблицей умножения и вывести его в выходной поток. То, что я написал: #include <vector> #include <iostream> #include <iomanip> using namespace std;
C++ Найти общую сумму стоимости всех перевозок и отдельно по каждому виду. Помогите 2 задания зделать полчиса сижу никак зделать не могу тут легко я просто чтота вдуплить не могу 2. Общая сумма стоимости всех перевозок; 3. Сумма стоимости по каждому виду перевозок; #include <iostream> using namespace std; #pragma warning (disable: 4996) int sum; http://www.cyberforum.ru/cpp-beginners/thread1223605.html
C++ Как объявить массив структур?
Как задать массив в С++? Type gostinica= record FIO:string; nomer:integer; cena: integer; kolvo: integer; itogo:integer; end; Var
Программа, во время выполнения, после ввода, прекращает работу C++
Проблема такая: Предисловие... Недавно я уже обращался сюда на форум из-за того, что с функцией randomize программа не компилировалась. Я, при помощи тех, кто мне помог, определил, как нужно было решить проблему.Ну и, собственно, решил проблему. Переделал все как требуется. Сначала скомпилировал программу: все верно. Запустил: спрашивает "введите размер массива:", я ему ввожу "3" (ради...
C++ Дать юзеру возможность вводить команды с параметрами http://www.cyberforum.ru/cpp-beginners/thread1223578.html
К утилите прикручена интерактивная оболочка, юзер вводит команду в ответ на которую выполняется некоторый код. Сейчас выглядит так: typedef struct { std::string cmd; void (*function)(void); }consoleCommand; static consoleCommand commands = { { "foo", do_foo },
C++ Перевод из десятичной в двоичную систему нужно перевести число из десятичной в двоичную систему! На форуме искал но не подходит! Вот мое творение #include <iostream> using namespace std; void main () { const int N=20; int mas; for (int i=0; i<N; i++) { int n=12, NS = 2, answer, answer1,a,b; подробнее

Показать сообщение отдельно
Renji
1535 / 983 / 240
Регистрация: 05.06.2014
Сообщений: 2,963
07.07.2014, 08:46     Странная перегрузка операторов (Error: ambiguous overload for 'operator[]')
Что-то я туплю. Есть код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include<string>
struct test
{
    int operator[](const std::string&)const{return 0;}
    operator int()const{return 0;}
};
int main()
{
    test t;
    t[""];
    return 0;
}
Компилятор ругается на t[""]; что "error: ambiguous overload for 'operator[]' in 't[""]'". Если убрать operator int, ругань волшебным образом пропадает. В чем собственно дело? operator int на operator [] по идее вообще никак влиять не должен. Не указатель же возвращает.

Если играет роль, в качестве компилятора установлен g++.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 17:07. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru