Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
1 / 1 / 0
Регистрация: 22.10.2014
Сообщений: 37

Конструктор и деструктор, наследуемые классы

06.04.2015, 18:25. Показов 1555. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер!
C++ (Qt)
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 A{
    int i,j;
    public:
        A(int n,int m){i=n; j=m;cout<<"BKK\n";}
        ~A(){cout<<"BKD\n";}
        void showij(){cout<<i<<" "<<j<<endl;}
    };
class B:public A{
    int k;
    public:
        B(int n,int m,int l):A(n,l){k=m;cout<<"TKK\n";}
        ~B(){cout<<"TKD\n";}
        void showc(){cout<<k<<endl;}
    };
int main(){
    B ob(1,2,3);
    ob.showij();
    ob.showc();
    return 0;
    }
есть вот такой код... Здесь класс В наследует класса А... И конструктор класса В вызывает конструктор класса А... мне нужно чтоб деструктором класса В вызвать конструктор класса А...
Кто шарит??? Плииииз!!!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
06.04.2015, 18:25
Ответы с готовыми решениями:

Классы, конструктор, деструктор
Написал код, куда и как глубоко меня посылает компилятор я понять не могу, заранее спасибо) Задание: Створити клас Array (Динамічний...

Классы, конструктор, деструктор
помогите пожалуйста найти ошибку, заранее спасибо задание Створити клас - &quot;дата&quot; з полями: день (1 - 31), місяць (1 - 12),...

Классы в СИ++ Конструктор Деструктор с чем их едят
Дарова народ)) есть такой вопрос ша проходим классы по С++ что надо знать в классах чтоб прогу написать? меня смутили новые слова...

13
Неэпический
 Аватар для Croessmah
18146 / 10730 / 2066
Регистрация: 27.09.2012
Сообщений: 27,029
Записей в блоге: 1
06.04.2015, 18:29
Деструктор базового класса будет вызван автоматически.
0
1 / 1 / 0
Регистрация: 22.10.2014
Сообщений: 37
06.04.2015, 18:43  [ТС]
Вы походу не поняли вопрос!

Цитата Сообщение от Rahmanur Посмотреть сообщение
B(int n,int m,int l):A(n,l){k=m;cout<<"TKK\n";}
тут конструктор отправляет значения к конструктору!... А мне надо с помощью деструктора
0
Жарю без масла
867 / 749 / 225
Регистрация: 13.01.2012
Сообщений: 1,702
06.04.2015, 19:07
Цитата Сообщение от Rahmanur Посмотреть сообщение
нужно чтоб деструктором класса В вызвать конструктор класса А...
не могу даже абстрактно уложить данное в голове: для чего? не поясните конкретнее цель сего "действа?"
0
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
06.04.2015, 19:20
деструктор производного не может отправить данные деструктору базового потому, что:
- деструктор нельзя вызвать явно (можно, но делают только больные люди на ДЦП)
- у деструктора нету входных параметров исходя из первого правила
1
1 / 1 / 0
Регистрация: 22.10.2014
Сообщений: 37
06.04.2015, 19:22  [ТС]
Даа уж! У меня точно проблемы с русским!

C++ (Qt)
1
B(int n,int m,int l):A(n,l){k=m;cout<<"TKK\n";}
здесь конструктор В принимает 3 значения и 2 из них отправляет конструктору класса А!
надо сделать так чтобы это сделал деструктор В!

Добавлено через 1 минуту
одним словом это - невозможно да???
0
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
06.04.2015, 19:28
на момент входа в "ваш мега крутой деструктор класса В" класс А уже создан и находится в классе В. И вы хотите вызвать в момент разрушение объекта процесс создания части этого объекта, который уже создан конструктором В давным давно.

Почему надо 7 раз повторить, что вы или бред пишите или не так спрашиваете. Но я ближе к первому!
0
Неэпический
 Аватар для Croessmah
18146 / 10730 / 2066
Регистрация: 27.09.2012
Сообщений: 27,029
Записей в блоге: 1
06.04.2015, 19:32
rikimaru2013,
- деструктор нельзя вызвать явно (можно, но делают только больные люди на ДЦП)
Вызывают, даже очень часто и если это делают дауны, то используя, например, std::vector, Вы используете творение даунов :-) хто Вы после этого?
0
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
06.04.2015, 19:33
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#include <iostream>
using namespace std;
class A
{
private:
    int x = 0;
public:
    A(int qwe)
    {
        cout << "Constr A" << endl;
        createMethod(qwe);
    }
    void createMethod(int qwe)
    {
        x = qwe;
        cout << "Special method "<< x << endl;
    }
    ~A()
    {
        cout << "Destr A" << endl;
    }
};
class B : public A
{
public:
    B(int y) : A(y)
    {
        cout << "Constr B" << endl;
    }
    ~B()
    {
        
        cout << "Destr B" << endl;
        A::createMethod(19);
    }
};
int main()
{
    {
        B rrr(17);
    }
    
}
Осталось понять зачем оно вам?!

Добавлено через 1 минуту
Цитата Сообщение от Croessmah Посмотреть сообщение
даже очень часто
можно пример? без std библиотеки (там респект разработчикам и так)

P.S. меня смущает фраза "очень часто"
0
Неэпический
 Аватар для Croessmah
18146 / 10730 / 2066
Регистрация: 27.09.2012
Сообщений: 27,029
Записей в блоге: 1
06.04.2015, 19:36
можно пример? без std библиотеки (там респект разработчикам и так)

P.S. меня смущает фраза "очень часто"
Два слова - placement new
0
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
06.04.2015, 19:37
Два слова - placement new
и на этом всё?
0
Неэпический
 Аватар для Croessmah
18146 / 10730 / 2066
Регистрация: 27.09.2012
Сообщений: 27,029
Записей в блоге: 1
06.04.2015, 19:49
и на этом всё?
Если хотите, накрапаю примерчик, но только когда доберусь до компа )))
1
19496 / 10101 / 2461
Регистрация: 30.01.2014
Сообщений: 17,808
06.04.2015, 20:25
rikimaru2013, вот примерчик, уже накрапанный.
2
06.04.2015, 21:23

Не по теме:

Цитата Сообщение от DrOffset Посмотреть сообщение
rikimaru2013, вот примерчик, уже накрапанный.
спасибо, добрый человек :)

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
06.04.2015, 21:23
Помогаю со студенческими работами здесь

Наследуемые классы
У меня есть класс class Render { public: Render(Framework *framework); ~Render(); };

Конструктор инициализации, конструктор копирования, деструктор
Я сделал почти задание по перегрузке операторов. Осталось одно, тоесть три: конструктор инициализации, конструктор копирования, деструктор....

Создать класс "Вектор" и реализовать конструктор по умолчанию, конструктор копирования и деструктор
Всем доброго времени суток! нужна ваша помощь! нужно создать класс вектор и реализовать конструктор по умолчанию, копирования и...

конструктор и деструктор в C++
Помогите добавить в прогу конструктор и деструктор #include &lt;iostream&gt; using namespace std; class preamougolinik { private: ...

С++. Конструктор, деструктор
Ребята!!! Помогите пожалуйста, не знаю как сделать это задание на С++. Нужно разработать класс Point для работы с пользовательским...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Установка Emscripten SDK (emsdk) и CMake на Windows для сборки C и C++ приложений в WebAssembly (Wasm)
8Observer8 30.01.2026
Чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. Система контроля версиями Git. . .
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru