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

Непонятный вызов конструктора класса - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как вытащить исходник из exe, написанного на C# http://www.cyberforum.ru/cpp-beginners/thread922683.html
Есть бэкдор, написанный на C# (для работы нужен NetFramework). Фишка в том, что когда ты его запускаешь, твой айпи отсылается автору. И вот мне нужно выскрыть exe-шник чтобы править код, чтобы...
C++ Передача функционального объекта в функцию Здорова! Никак не могу передать функциональный объект в функцию. От примерчик, функция передается нормально, а объект нет. #include <iostream> using std::cout; using std::endl; #include... http://www.cyberforum.ru/cpp-beginners/thread922679.html
C++ Функция strcmp
Имеется три числа num1, num2 и det. Как используя функцию strcmp определить принадлежит ли число det, промежутку num1, num2?
C++ Выделение памяти на стеке
Добрый день. Часто в учебниках и на форуме я встречал такое выражение как "переменная создаётся в (или на) стеке". Мне непонятно, что это значит. Ведь к стеку мы обращаемся через push ax pop ax...
C++ не читает файл в Qt http://www.cyberforum.ru/cpp-beginners/thread922622.html
дан фрагмент программы, которая должна читать сведения из текстового файла, но почему-то он этого не делает. может быть кто-нибудь сталкивался с такой проблемой? помогите пожалуйста void help()...
C++ Виртуальные функции Какие происходят изменения, когда в классе объявляем одну или несколько функций виртуальными? Вот, например, если в SuperClass перед функцией Show() написать слово virtual, то что произойдет? ... подробнее

Показать сообщение отдельно
BigLow
55 / 55 / 2
Регистрация: 07.07.2013
Сообщений: 345

Непонятный вызов конструктора класса - C++

13.07.2013, 19:30. Просмотров 416. Ответов 8
Метки (Все метки)

Почему в строчке d1=500; (70 стр.) вызывается конструктор CDate(500, 1, 2000)?
Получается, целое число 500 перед присваиванием каким то образом преобразуется в тип CDate. Но почему? Вот это мне не понятно как раз.

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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#include <iostream>
 
class CDate
{
public:
    CDate(int day=1, int month=1, int year=2000);
    CDate(const CDate &copy);
    const CDate &operator=(const CDate &right);
 
    CDate &AddDay(int n);
    CDate &AddMonth(int n);
    CDate &AddYear(int n);
 
    int GetDay() const;
    int GetMonth() const;
    int GetYear() const;
 
private:
    int mDay;
    int mMonth;
    int mYear;
};
 
 
CDate::CDate(int day, int month, int year)
{
    std::cout << "Конструктор CDate(" << day << ", " << month << ", " << year << ")" << std::endl;
    mDay=day;
    mMonth=month;
    mYear=year;
}
 
CDate::CDate(const CDate &copy)
{
    std::cout << "Конструктор копии CDate(" << copy.mDay << ", " << copy.mMonth << ", " << copy.mYear << ")" << std::endl;
    mDay=copy.mDay;
    mMonth=copy.mMonth;
    mYear=copy.mYear;
}
 
const CDate &CDate::operator=(const CDate &right)
{
    std::cout << "Вызов operator=(" << right.mDay << ", " << right.mMonth << ", " << right.mYear << ")" << std::endl;
    mDay=right.mDay;
    mMonth=right.mMonth;
    mYear=right.mYear;
 
    return *this;
}
 
CDate &CDate::AddDay(int n)     { std::cout << "AddDay(" << n << ")" << std::endl;  mDay += n;  return *this; }
CDate &CDate::AddMonth(int n)   { std::cout << "AddMonth(" << n << ")" << std::endl;  mMonth += n;  return *this; }
CDate &CDate::AddYear(int n)    { std::cout << "AddYear(" << n << ")" << std::endl;  mYear += n;  return *this; }
 
int CDate::GetDay() const       { return mDay; }
int CDate::GetMonth() const     { return mMonth; }
int CDate::GetYear() const      { return mYear; }
 
 
 
 
 
 
int main()
{
    setlocale(LC_ALL, "Russian");
 
    CDate d1(13,7,2013);
 
    d1=500;
    
    system("pause");
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru