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

Непонятки с конвертацией типов - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Чем отличаются между собой 3 книги Шилдта по С++? http://www.cyberforum.ru/cpp/thread612582.html
Читаю сейчас его книгу "Руководство для начинающих", дальше хотел прочитать ещё его две книги "Базовый курс" и "Полный справочник". Но не пойму, одна дополняет другую или это просто новые издания?...
C++ Передача аргумента в созданный поток Здравствуйте, суть такова: Создаётся некий поток: DWORD WINAPI MyThread(LPVOID lpParam) { MyStruct data = *(MyStruct*) lpParam; ... } http://www.cyberforum.ru/cpp/thread612537.html
C++ DFD множество одинаковых функциональных блоков
Не знай, куда эту тему определить.. В DFD есть блоки одинаковой функциональности: "осмотр логопеда", "осмотр педиатра", "осмотр невролога" и т.д. Какой-то определенной последовательности их...
Класс метафункций: определение, примеры C++
класс метафункций:определение,примеры.
C++ Константные вычисления. Типы арифметических метафункций. http://www.cyberforum.ru/cpp/thread611861.html
Помогите написать прогу.Константные вычисления.Опрделение типоф арифметических метафункций над обертками интегральных типов.
C++ Сборка библиотеки pHash Всем привет! Возникла необходимость воспользоваться библиотекой pHash . Нужна она для вычисления хэшей изображений, аудио или видео. В частности мне нужно считать хэши для аудио файлов. Пишу под... подробнее

Показать сообщение отдельно
yekka
385 / 149 / 8
Регистрация: 12.05.2011
Сообщений: 450
01.07.2012, 21:22  [ТС]
походу возник еще один вопрос
допустим, мы хотим писать
C++
1
std::cout << foo << std::endl
то получаем ошибку, суть которой в том, что оператор << определен для целых чисел, для чисел с плавающей точкой, для указателей и для манипуляторов и ни в один из этих типов Foo конвертировать нельзя.
Результат компиляции
Ну и если добавить в класс Foo operator float(), то все действительно без проблем компилируется:
http://liveworkspace.org/code/b80a2a...407f3fbd4dd823

Но вот непонятно, почему компилятору не видна версия operator<< для строк. Ведь такая версия есть.
Можно было бы предположить, что оператор << для строк объявлен как шаблонная ф-ция, не имеющая общего определения, но имеющая только специализации для конкретных типов, но тогда бы ошибка была бы другой, что-то вроде undefined reference to...
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru