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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Системы счисления и вывод результата http://www.cyberforum.ru/cpp-beginners/thread347770.html
Здравствуйте, я получил задание создать программу которая принимает значение в 10-тичной системе и выводит на экран значение в любой выбранной системе от 2 до 36. #include<iostream> using namespace std; void st(int dig,int sys); void main() { int dig,sys=0; cout<<"Enter a digit:\t"; cin>>dig; cout<<"Enter a system(2-36):\t";
C++ Размер массива Нужно создать массив для хранения различных символов (буквы и различные знаки) Необходимо узнать его размер. Как это сделать? В массиве хранятся // символы поодиночке char *a = new char ; http://www.cyberforum.ru/cpp-beginners/thread347758.html
C++ Стандартный класс complex.
1)Есть ли стандартный не шаблонный класс complex? Я нашел только шаблонный класс, определенный в заголовочном файле <complex> Есть ли нет не шаблонного класса complex, нельзя ли объявить объект complex без указаний типа? Судя по этому( в самом низу страницу ) http://msdn.microsoft.com/en-us/library/7a40a0e3(VS.80).aspx , вроде бы можно( я англ. плохо знаю ), а компилятор Visual Studio не...
C++ Помогите настроить CodeBlocks...
Скачал CodeBlocks 10,5 ,при установки поставил везде галочки .Потом решил проверить работоспособность:Создал консольное приложение,выбрал язык с++,компилятор не стал менять,затем вылетела ошибка:"This wizard doesn't know to setup exception flags for this compiler" ,нажал Ок ,там уже была вбита программа "Hello World" : #include <iostream> using namespace std; int main() { cout <<...
C++ sizeof и количество элементов в массиве http://www.cyberforum.ru/cpp-beginners/thread347735.html
Доброе время суток. Подскажите пожалуйста почему sizeof не возвоащает кол.элементов в массиве. #include <iostream> int main() { using namespace std; short int symbols = {34,6,4,6,3,43,2,55,12,432,54,34,543,234,432}; int a;
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. Вот как я пытаюсь это сделать: ifstream input("input.txt"); подробнее

Показать сообщение отдельно
Chelioss
179 / 179 / 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 к конструктору с двумя аргументами.
 
Текущее время: 07:10. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru