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

C++

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

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

20.12.2014, 21:52. Просмотров 393. Ответов 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;
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.12.2014, 21:52
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Не понимаю текста программы. Что будет напечатано в результате программы? И что вообще происходит в программе? (C++):

Объясните подробно данный код программы. Знаю что это фильтр а пошагово что к чему не понимаю - C++ Builder
void __fastcall TForm1::suiButton7Click(TObject *Sender) { tdiag -> Filtered = false; tdiag -> Filt = «id_p=« + suiEdit6 -> Text; ...

Что пишется при создании программы в билдере в разделе "справка о программе"? - C++ Builder
Подскажите пожалуйста что пишестся при создании программы с билдере в разделе справка о программе

Определить, что будет выдано на терминал в результате выполнения программы - C++
Помогите ответить на вопрос Определить, что будет выдано на терминал в результате выполнения программы: #include<iostream.h>...

Определите, сколько звездочек будет напечатано в результате вызова функции F (5) - C++
Определите, сколько звездочек будет напечатано в результате вызова функции F(5): И сама функция: void F(int n) { if (n>1) ...

Объясните,пожалуйста,что происходит в этом куске программы? - C++
Требуется динамическое выделение памяти под двухмерный массив с заполнением массива с клавиатуры. Можно подробнее про этот кусок: ...

Какое значение будет выведено в результате работы программы? - C++
#include <iostream> using namespace std; int main() { int k = 0; for (int i = 2; k * k < 10; i < 3, k++, k--) { k += 1; } ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Croessmah
Эксперт CЭксперт С++
13226 / 7498 / 845
Регистрация: 27.09.2012
Сообщений: 18,416
Записей в блоге: 3
Завершенные тесты: 1
20.12.2014, 22:21 #2
Что будет напечатано в результате программы? И что вообще происходит в программе?
Будет напечатана ошибка компиляции и не одна
1
FraidZZ
Ex-Member
3898 / 1524 / 229
Регистрация: 06.01.2013
Сообщений: 4,050
Завершенные тесты: 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
1
vladislav1995
0 / 0 / 0
Регистрация: 20.12.2014
Сообщений: 5
20.12.2014, 23:26  [ТС] #4
FraidZZ, это мне просто дали задание домой. текст программы от преподавателя! спасибо за помощь!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.12.2014, 23:26
Привет! Вот еще темы с ответами:

Что будет вызвано в результате вызова f()? - C++
Дан код со следующим определением класса A: struct A { void f() {/* метод 1*/} void f(int x) {/* метод 2*/} void...

Что будет выведено после выполнения следующего фрагмента программы: - C++
int main() { int a = 3; int b = 4; int c = 5; int &amp;d = b; a = b = c; cout &lt;&lt; a &lt;&lt; b &lt;&lt; c &lt;&lt; d &lt;&lt;...

Что будет выведено на экран при выполнении следующей программы - C++
Что будет выведено на экран при выполнении следующей программы при n = 196, m = 649, k = 255 ? #include &lt;stdio.h&gt; #include...

Что будет в переменных в результате выполнения кода? - C++
программный код: int z=6, x=-2, y=4; z+=y=5+x--; Что будет в переменных в результате выполнения?


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
20.12.2014, 23:26
Ответ Создать тему
Опции темы

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