Рубрики

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

#include <iostream>

using namespace std;

  

class Point

{

    int x, y;

public:

   Point(int i = 0, int j = 0) { x = i; y = j; }

   int getX() { return x; }

   int getY() { return y; }

};

  

int main()

{

    Point p1;

    Point p2 = p1;

    cout << "x = " << p2.getX() << " y = " << p2.getY();

    return 0;

}

(A) Ошибка компилятора
(B) x = 0 y = 0
(C) x = значение мусора y = значение мусора

Ответ: (Б)
Объяснение: Компилятор создает конструктор копирования, если мы не пишем свой собственный. Компилятор пишет это, даже если мы написали другие конструкторы в классе. Так что вышеприведенная программа работает нормально. Поскольку у нас есть аргументы по умолчанию, значения, присвоенные x и y, равны 0 и 0.
Тест на этот вопрос

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

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

0.00 (0%) 0 votes