Рубрики

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

Вывод следующей программы?

#include<iostream>

using namespace std;

  

class Point {

public:

    Point() { cout << "Normal Constructor called\n"; }

    Point(const Point &t) { cout << "Copy constructor called\n"; }

};

  

int main()

{

   Point *t1, *t2;

   t1 = new Point();

   t2 = new Point(*t1);

   Point t3 = *t1;

   Point t4;

   t4 = t3;

   return 0;

}

(A) Нормальный конструктор называется
Нормальный конструктор называется
Нормальный конструктор называется
Конструктор копирования называется
Конструктор копирования называется
Нормальный конструктор называется
Конструктор копирования называется
(B) Нормальный конструктор называется
Конструктор копирования называется
Конструктор копирования называется
Нормальный конструктор называется
Конструктор копирования называется
(C) Нормальный конструктор называется
Конструктор копирования называется
Конструктор копирования называется
Нормальный конструктор называется

Ответ: (с)
Объяснение: см. Следующие комментарии для объяснения:

Point *t1, *t2;   // No constructor call
t1 = new Point(10, 15);  // Normal constructor call
t2 = new Point(*t1);   // Copy constructor call 
Point t3 = *t1;  // Copy Constructor call
Point t4;   // Normal Constructor call
t4 = t3;   // Assignment operator call 

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

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

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

0.00 (0%) 0 votes