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

классы с++ - C++

Восстановить пароль Регистрация
 
Miwa123
37 / 37 / 1
Регистрация: 16.04.2013
Сообщений: 317
Записей в блоге: 1
10.11.2013, 00:07     классы с++ #1
есть шаблонный класс, что-то вроде вектора. перегружаю оператор =. При разных типах
C++
1
2
vector<int> abc(5,3);
vector<float> abd(5,3);
впервые сталкиваюсь как быть?
Как компилятор понимает что типы разные? класс то единый? почему внутри встроенные преобразования не срабатывают? что с этим делать?
Кликните здесь для просмотра всего текста
error: бинарный "==": не найден оператор, принимающий левый операнд типа "vector<Type>" (или приемлемое преобразование отсутствует)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.11.2013, 00:07     классы с++
Посмотрите здесь:

Классы возможностей(Mixin классы) C++
C++ классы/дочерние классы/методы
Классы C++
Классы, включающие другие классы C++
C++ классы с++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kuzia domovenok
 Аватар для Kuzia domovenok
1882 / 1737 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
10.11.2013, 00:16     классы с++ #2
vector<int> и vector<double> это 2 разных типа. И никак их сравнивать нельзя!
ct0r
C++/Haskell
 Аватар для ct0r
1549 / 568 / 39
Регистрация: 19.08.2012
Сообщений: 1,174
Завершенные тесты: 1
10.11.2013, 00:32     классы с++ #3
Цитата Сообщение от Miwa123 Посмотреть сообщение
что с этим делать?
ручная проверка на размер + std::equal
Miwa123
37 / 37 / 1
Регистрация: 16.04.2013
Сообщений: 317
Записей в блоге: 1
10.11.2013, 00:36  [ТС]     классы с++ #4
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
vector<int> и vector<double> это 2 разных типа. И никак их сравнивать нельзя!
дак я и не сравниваю. я присваиваю. а как реализовано присвоение флота к инту в стл`е?

Добавлено через 3 минуты
Цитата Сообщение от ct0r Посмотреть сообщение
ручная проверка на размер + std::equal
в теле априори будет ошибка, или я чего-то не догоняю. нужно что-то с заголовком делать, мне кажется
Kuzia domovenok
 Аватар для Kuzia domovenok
1882 / 1737 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
10.11.2013, 00:39     классы с++ #5
Еще раз: vector<int> и вектор флоат - абсолютно разные типы данных, которые не должны взаимодействовать!
ct0r
C++/Haskell
 Аватар для ct0r
1549 / 568 / 39
Регистрация: 19.08.2012
Сообщений: 1,174
Завершенные тесты: 1
10.11.2013, 00:43     классы с++ #6
в теле априори будет ошибка. нужно что-то с заголовком делать, мне кажется
я написал, что надо сделать, чтобы сравнить. а чтобы присвоить: f.assign(i.begin(), i.end());

Цитата Сообщение от Miwa123 Посмотреть сообщение
дак я и не сравниваю. я присваиваю.
ты сравниваешь.

Цитата Сообщение от Miwa123 Посмотреть сообщение
а как реализовано присвоение флота к инту в стл`е?
во-первых не в stl, а в core c++, а во-вторых флоат и инт - это встроенные фундаментальные типы, для которых определено присваивание, а вот для векторов c разным типом - не определено.
Yandex
Объявления
10.11.2013, 00:43     классы с++
Ответ Создать тему
Опции темы

Текущее время: 20:59. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru