-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathmain.cpp
31 lines (26 loc) · 1.75 KB
/
main.cpp
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
#include "SomeClass.h"
#include "../pchar.h"
void DoSomething(void) {
// Обыкновенное использование конструктора:
SomeClass sc1 = SomeClass(L"Hello World");
// Допустимо, т.к. const wchar_t* конструктор является конструктором
// преобразования:
SomeClass sc2 = L"Hello World";
// Конструктор преобразования позволяет сконструировать sc2 напрямую
// присвоив sc2 строковое значение. Компилятор видит инструкцию, проверяет
// есть ли у SomeClass конструктор преобразования, который принимает
// значение соответствующего типа и выполняет вызов соответствующего
// конструктора SomeClass.
// Обыкновенное использование конструктора:
SomeClass sc3 = SomeClass(1);
// Недопустимо, т.к. int конструктор не является конструктором преобразования:
// SomeClass sc4 = 1;
// Компилятор потерпит неудачу, т.к. мы использовали explicit, чтобы сказать
// компилятору, что конструктор, который принимает int не должен использоваться
// как конструктор преобразования, но он может использоваться как любой другой
// параметризованный конструктор.
}
int _pmain(int /*argc*/, _pchar* /*argv*/[]) {
DoSomething();
return 0;
}