Форум программистов, компьютерный форум CyberForum.ru

C++

Войти
Регистрация
Восстановить пароль
 
vladislav1995
0 / 0 / 0
Регистрация: 20.12.2014
Сообщений: 5
#1

Не понимаю текста программы. Что будет напечатано в результате программы? И что вообще происходит в программе? - C++

20.12.2014, 21:52. Просмотров 370. Ответов 3
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class B {
    int x;
    B (int a=0) { x = a; cout « 1; }
    -B () { cout « 3; }
};
class D : B {
    D (int d ) : B (d) { cout « 6; }
    -D () {cout « 4; }
};
int main () {
B * p1 = new B[2], *p2 = new D (1);
delete [] p1;
delete p2;
return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.12.2014, 21:52     Не понимаю текста программы. Что будет напечатано в результате программы? И что вообще происходит в программе?
Посмотрите здесь:

Что будет выведено на экран при выполнении следующей программы C++
Определить, что будет выдано на терминал в результате выполнения программы C++
C++ Определите, сколько звездочек будет напечатано в результате вызова функции F (5)
Что будет выведено на экран в результате выполнения приведенного фрагмента кода? C++
C++ Что будет выведено после выполнения следующего фрагмента программы:
C++ Что будет выведено на экран при выполнении следующего фрагмента программы
Что будет выведено на экран при выполнении следующего фрагмента программы C++
Что будет в переменных в результате выполнения кода? C++
Объясните подробно данный код программы. Знаю что это фильтр а пошагово что к чему не понимаю C++ Builder
C++ Что будет вызвано в результате вызова f()?
C++ Объясните,пожалуйста,что происходит в этом куске программы?

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт CЭксперт С++
12878 / 7264 / 810
Регистрация: 27.09.2012
Сообщений: 17,944
Записей в блоге: 2
Завершенные тесты: 1
20.12.2014, 22:21     Не понимаю текста программы. Что будет напечатано в результате программы? И что вообще происходит в программе? #2
Что будет напечатано в результате программы? И что вообще происходит в программе?
Будет напечатана ошибка компиляции и не одна
FraidZZ
Ex-Member
3897 / 1523 / 229
Регистрация: 06.01.2013
Сообщений: 4,049
Завершенные тесты: 1
20.12.2014, 22:53     Не понимаю текста программы. Что будет напечатано в результате программы? И что вообще происходит в программе? #3
Ничего. Откуда код?
Как минимум в деструкторе вместо - использовать ~
И вместо « использовать <<

Добавлено через 3 минуты
Да и синтаксически это что-то ужасно непонятное.

Добавлено через 4 минуты
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
using namespace std;
 
class B {
  int x;
 
  public:
  B (int a=0) { x = a; cout << 1; }
  ~B () { cout << 3; }
};
class D : public B {
 
  public:
  D (int d ) : B (d) { cout << 6; }
  ~D () { cout << 4; }
};
int main () {
  B * p1 = new B[2], *p2 = new D(1);
  delete [] p1;
  delete p2;
  return 0;
}
Как минимум сделать так.
Вывод будет 1116333

Добавлено через 8 минут
Поясняю почему так:
Сначала. Вызывается два раза конструктор B - выводится 11
Затем вызывается конструктор B в списке инициализации перед запуском конструктора D - вместе они выдают 16
Затем два раза вызывается деструктор D - вывод 33
И ещё раз деструктор D - тоже 3.
Почему в последний раз вызывается деструктор D, а не B? Потому что тип указателя - B*, а какой деструктор необходимо вызывать, разрешается на этапе компиляции, а не в рантайме через VMT
vladislav1995
0 / 0 / 0
Регистрация: 20.12.2014
Сообщений: 5
20.12.2014, 23:26  [ТС]     Не понимаю текста программы. Что будет напечатано в результате программы? И что вообще происходит в программе? #4
FraidZZ, это мне просто дали задание домой. текст программы от преподавателя! спасибо за помощь!
Yandex
Объявления
20.12.2014, 23:26     Не понимаю текста программы. Что будет напечатано в результате программы? И что вообще происходит в программе?
Ответ Создать тему
Опции темы

Текущее время: 13:39. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru