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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Erjay
0 / 0 / 0
Регистрация: 03.08.2013
Сообщений: 91
#1

Преобразование - C++

24.09.2013, 23:46. Просмотров 277. Ответов 4
Метки нет (Все метки)

О каком преобразовании идет речь в строке 34, если конструктор принимает тип double и аргумент (10.0) записывается в double dReal?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
//
//  TypeConversion - demonstrate the implicit conversion
//                   of one type to another
//
#include "stdafx.h"
#include <iostream>
using namespace std;
 
class Complex
{
  public:
    Complex() : dReal(0.0), dImag(0.0)
    { cout << "invoke default constructor" << endl;}
    /*explicit*/ Complex(double _dReal)
      : dReal(_dReal), dImag(0.0)
    { cout << "invoke real constructor " << dReal <<endl;}
    Complex(double _dReal, double _dImag)
      : dReal(_dReal), dImag(_dImag)
    {
        cout << "invoke complex constructor " << dReal
             << ", " << dImag << endl;
    }
 
    double dReal;
    double dImag;
};
 
int main(int argcs, char* pArgs[])
{
    Complex c1, c2(1.0), c3(1.0, 1.0);
 
    // constructor can be used to convert from one type
    // to another
    c1 = Complex(10.0);
 
    // the following conversions work even if explicit
    // is uncommented
    c1 = (Complex)20.0;
    c1 = static_cast<Complex>(30.0);
 
    // the following implicit conversions work if the
    // explicit is commented out
    c1 = 40.0;
    c1 = 50;
 
    system("PAUSE");
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.09.2013, 23:46     Преобразование
Посмотрите здесь:

Преобразование типа или преобразование типа указателя ? - C++
Добрый день. Помогите пожалуйста понять что делает вот эта команда: out.write ((char *) &amp;n, sizeof n); Она что, перед записью в файл...

Преобразование С++ - C++
Не знаю как разрулить один ньюанс. Есть динамический массив симолов.(char mass=new char; ) Есть динамический массив даблов.(double...

преобразование - C++
Господа как преобразовать из LPTSTR в - LPCTSTR

Преобразование +'0' - C++
Приветствую. Возможно кто-то сможет объяснить почему так получается : ) Нужно было создать шаблон функции. Которая будет находить...

Преобразование - C++
есть переменная чар. есть куча переменных типа инт. int a,b,c,d,e.. как сделать чтобы при вызове cout&lt;&lt;char c; этот чар давался...

Преобразование температуры - C++
У меня такая проблема написал я программу преобразования температуры из Цельсия в Фаренгейт А ВОТ написать так чтоб программа выполняла...

преобразование матрицы - C++
помогите решить.преобразовать заданную матрицу x(p,k) таким образом чтобы первый элемент каждого столбца был заменен произведением...

Преобразование в число - C++
Подскажите как решить данную задачу ? Вот эа программа у меня не работает вообще, хотя должна быть идеально решеной. ...

Преобразование массивов - C++
Помогите пожалуйста сделать задачку: Преобразовать одномерный массив(10 элементов) в массив массивов в каждом из которых числа будут идти...

Преобразование типов - C++
Подскажите пожалуйста. Есть класс для работы со строками class String // Объявление строкового класса { private:...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
VEINHORN
543 / 92 / 22
Регистрация: 16.12.2011
Сообщений: 317
24.09.2013, 23:52     Преобразование #2
В этой строчке вызывается конструктор Complex() и присваивается c1. Видимо кто-то не то закомментировал или неясно это сделал.
Erjay
0 / 0 / 0
Регистрация: 03.08.2013
Сообщений: 91
24.09.2013, 23:54  [ТС]     Преобразование #3
MCKLAS, код коректный, вопрос в другом: о каком преобразовании идет речь?
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
6419 / 3058 / 302
Регистрация: 04.12.2011
Сообщений: 8,335
Записей в блоге: 3
25.09.2013, 00:02     Преобразование #4
Erjay, конструктор с одним параметром типа отличного от типа класса работает при инициализации таким типом:
C++
1
A a = 10;
Тут как и при простом присваивании и происходит неявное преобразование. Как тут:
C++
1
2
3
double b;
int c = 3;
b = c;// int -> To double
castaway
Эксперт С++
4881 / 3017 / 370
Регистрация: 10.11.2010
Сообщений: 11,076
Записей в блоге: 10
Завершенные тесты: 1
25.09.2013, 00:05     Преобразование #5
Преобразуется число типа double в класс типа Complex, с мнимой частью 0. По сути это всего лишь конструктор, и никого преобразования в нем не происходит.
Yandex
Объявления
25.09.2013, 00:05     Преобразование
Ответ Создать тему
Опции темы

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