R Справочное руководство по С++

R.12.3.1 Преобразование с помощью конструктора.

   


Назад  |  Вперёд

Конструктор, имеющий единственный параметр, задает преобразование типа своего фактического параметра в тип его класса, например:

           class X {
             // ...
           public:
             X(int);
             X(const char*, int = 0);
           };

           void f(X arg) {
              X a = 1;        // a = X(1);
              X b = "Jessie"; // b = X("Jessie",0)
              a = 2;          // a = X(2)
              f(3);           // f(X(3))
           }

Если в классе X нет конструктора, который допускает заданный тип, не делается попытки найти какой-либо конструктор другого класса или функцию преобразования для приведения заданного значения в значение типа,допустимого для конструктора класса X, например:

           class X { /* ... */ X(int); };
           class Y { /* ... */ Y(X); };
           Y a = 1;        // недопустимо: преобразование Y(X(1))
                           // не применяется

Назад  |  Вперёд


OtDiatlovaOU
К началу книги

Оформление и дизайн книги OtDiatlovaOU.
Вся книга, архив.