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

Не работает явное преобразование типа, а неявное работает. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Системы счисления и вывод результата http://www.cyberforum.ru/cpp-beginners/thread347770.html
Здравствуйте, я получил задание создать программу которая принимает значение в 10-тичной системе и выводит на экран значение в любой выбранной системе от 2 до 36. #include<iostream> using namespace...
C++ Размер массива Нужно создать массив для хранения различных символов (буквы и различные знаки) Необходимо узнать его размер. Как это сделать? В массиве хранятся // символы поодиночке char *a = new char ; http://www.cyberforum.ru/cpp-beginners/thread347758.html
C++ Стандартный класс complex.
1)Есть ли стандартный не шаблонный класс complex? Я нашел только шаблонный класс, определенный в заголовочном файле <complex> Есть ли нет не шаблонного класса complex, нельзя ли объявить объект...
C++ Помогите настроить CodeBlocks...
Скачал CodeBlocks 10,5 ,при установки поставил везде галочки .Потом решил проверить работоспособность:Создал консольное приложение,выбрал язык с++,компилятор не стал менять,затем вылетела...
C++ sizeof и количество элементов в массиве http://www.cyberforum.ru/cpp-beginners/thread347735.html
Доброе время суток. Подскажите пожалуйста почему sizeof не возвоащает кол.элементов в массиве. #include <iostream> int main() { using namespace std; short int symbols =...
C++ Запись в двумерный вектор Есть файл input.txt со следующим содержимым: 0 1 0 0 0 1 0 1 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 то есть, файл содержит матрицу 5x5. Необходимо записать данную матрицу в двумерный вектор v. Вот... подробнее

Показать сообщение отдельно
Chelioss
180 / 180 / 4
Регистрация: 08.01.2011
Сообщений: 1,133
03.09.2011, 21:07  [ТС]
Все, я понял. Я плохо запомнил из книги, что делает explicit.
Оказывается он подавляет только неявные преобразования, т.е.
код Complex complex = 999 работает, т.к. тут неявное преобразования, а из-за того, что есть explicit, один из конструкторов запрещается и остается только оставшийся.
А тут Complex complex = Complex(999) не работает, т.к. explicit не подавляет явное преобразование.

Кстати говоря, в книге Дейтелов написано, что explicit можно применять только к конструктору с одним аргументом, ибо будет ошибка компиляции. А вот Visual Studio 2008 позволяет использовать explicit к конструктору с двумя аргументами.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru