Рубрики

C ++ | Конструкторы | Вопрос 16

Предсказать вывод следующей программы?

#include <iostream>

using namespace std;

class Test

{

private:

    int x;

public:

    Test(int i)

    {

        x = i;

        cout << "Called" << endl;

    }

};

  

int main()

{

    Test t(20);

    t = 30; // здесь вызывается конструктор преобразования.

    return 0;

}

(A) Ошибка компилятора
(В)

Called
Called

(С)

Called

Ответ: (Б)
Объяснение: Если у класса есть конструктор, который может быть вызван с одним аргументом, то этот конструктор становится конструктором преобразования, поскольку такой конструктор допускает автоматическое преобразование в создаваемый класс.

Конструктор преобразования может быть вызван где угодно, когда объекту назначен тип единственного аргумента. Выход данной программы

Called
Called

Тест на этот вопрос

Рекомендуемые посты:

C ++ | Конструкторы | Вопрос 16

0.00 (0%) 0 votes