Форум программистов, компьютерный форум 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

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

03.09.2011, 20:35. Просмотров 2819. Ответов 28
Метки (Все метки)

Опечатался. Не работает явное преобразования, а не явное работает.
Есть класс( не обращайте внимание на члены данные класса ):
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class Complex
{
    friend std::istream &operator>>( std::istream &, Complex & );
    friend std::ostream &operator<<( std::ostream &, const Complex & );
 
public:
    explicit Complex( double = 0.0, double = 0.0 );
    Complex( double );
 
    Complex operator*( const Complex & );
    Complex operator+( const Complex & );
    Complex operator-( const Complex & );
 
private:
    double mod; // модуль комплексного числа
    double arg; // аргумент комплексного числа
};
Вот реализация конструктора преобразования:
C++
1
2
3
4
Complex::Complex( double m_mod )
:mod( m_mod ), arg( 0 )
{
}
Вот функция main:
C++
1
2
3
4
5
6
7
8
9
10
#include "Complex.h"
 
int main()
{
    Complex comp = 999;
    std::cout << comp;
 
    system( "pause" );
    return 0;
}
Вот так программа работает, т.е. неявное преобразование типа от int к Complex работает.
А вот если вместо 999 написать Complex(999), то будет ошибка: нет подходящего конструктора преобразования.

В чем проблема?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru