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

неоднозначность, explicit - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Ссылки, вложенные структуры http://www.cyberforum.ru/cpp-beginners/thread91501.html
Напишите пожалуйста определения с примерами..вообщем как ответить по теории.. 1. Типы определяемые пользователем: вложенные структуры (определение, описание, обращения, примеры) 2. Ссылки (с...
C++ Вычеслить сумму ряда если кому не сложно помогите пожалуйста)))мозг совсем отказывается что то воспринять. задача во вложение.смог осилить только "псевдо графику" http://www.cyberforum.ru/cpp-beginners/thread91498.html
Переделать программу из Pascal в C++ C++
Добрый день! Прошу помочь, подсказать. Есть программа на Pascal, ее необходимо перевести в C++. Сам C++ знаю слабо, побробывал сам, но вкрались ошибки. Pascal program Perevod; {Nazvanie...
Функции и структуры C++
1.Написать функцию, входным параметром которой является указатель на строку, содержащую запись вещественного числа в десятеричной системе счисления. Функция должна вернуть вещественное значение этого...
C++ Найти максимальный и минимальный элемент,и вывести их в файл и Прочитать массив из файла. http://www.cyberforum.ru/cpp-beginners/thread91468.html
Первая задача Найти максимальный и минимальный элемент,и вывести их в файл Вторая задача Прочитать массив из файла. 1)Количество элементов; 2)Все элементы; 3)Посчитать сумму до первого...
C++ Исправить слово "интернет" на слово "ИНТЕРПОЛ" 1.Подготовыть текстовый файл с входными данными в редакторе. 2.Составить алгоритм программы. 3.Разбить программу на функции ввода, обработки вывода. 4.Входные данные почитать из файла. 5.Выложить... подробнее

Показать сообщение отдельно
ZigaZaga
0 / 0 / 0
Регистрация: 06.01.2010
Сообщений: 20

неоднозначность, explicit - C++

01.02.2010, 00:50. Просмотров 2425. Ответов 2
Метки (Все метки)

Добрый вечер.
написал такой шаблонный класс:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
template <class T> class Container 
{
    private:
    ......
    public:
    Container(const int _dim, ...);
 
    Container (Container & cs);
 
    ~Container ();
    
    Container & operator = (Container  & sc);
    
    Container & operator[](int index);
    
    operator T & ();
};
пытаюсь его использовать так:

C++
1
2
Container<int> A(3,10,10,10); // кубик 10*10*10
A[5][5][5] = 18;
всё хорошо. А приводиться к int. хотя 18 также можно привести к контейнеру. почему тут нет не разрешимости?

если же написать так:


C++
1
2
3
Container<int> A(3,10,10,10); // кубик 10*10*10
int i = 18;
A[5][5][5] = i;


вижл студия пишет что " 'operator =' is ambiguous ".
хорошо. добавляю перед обоим конструкторами 'explicit'.
НИЧЕГО не меняеться. почему?
всё же однозначно: А приводиться к целому.

дальше больше.


C++
1
2
3
4
Container<int> A(3,10,10,10); // кубик 10*10*10
int i = 18;
int j = 20;
A[5][5][5] = i * j;


снова работает. и с 'explicit' и без.

и это всё и на вижл студии 6.0 и 2008...
буду ОЧЕНЬ рад хоть какому-то ответу... намёку...хоть как-то..
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.