0 / 0 / 0
Регистрация: 11.03.2024
Сообщений: 6

Как заменить родителя на наследника?

20.03.2024, 13:17. Показов 1828. Ответов 22

Студворк — интернет-сервис помощи студентам
Здравствуйте, возможно ли как-то заменить родительский класс на его наследника?
У меня есть два класса:
C++
1
2
3
4
5
6
7
class Tile {
public:
friend ostream& operator <<(ostream& out, const Tile& t){
out<<' ';
return out;
}
};
C++
1
2
3
4
5
6
7
class Wall: public Tile {
public:
friend ostream& operator <<(ostream& out, const Wall& w){
out<<'#';
return out;
}
};
C++
1
2
3
4
Wall w;
Tile t;
t = w;
cout << t << w;// выводится пробел и #, а хотелось бы ##
Нужно это, чтобы в массиве можно было менять какие-то элементы на Wall, а какие-то обратно на Tile и т.д.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.03.2024, 13:17
Ответы с готовыми решениями:

Как избежать повтора параметров конструктора класса-родителя в конструкторе наследника?
С каждым новым наследуемом классом, число параметров конструктора увеличивается. class A { public: A(int a, float b, double c) ...

Доступ к приватному методу наследника через родителя
Тут натолкнулся на интересную штуку. #include &lt;iostream&gt; using namespace std; class A { public: virtual void f() { ...

Нужно из класса наследника передать параметры в класс родителя
#include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;math.h&gt; class ploskost{ protected: float d; int x1,y1,x2,y2; public: ...

22
"C with Classes"
2022 / 1404 / 523
Регистрация: 16.08.2014
Сообщений: 5,885
Записей в блоге: 1
21.03.2024, 19:44
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от eva2326 Посмотреть сообщение
Что бы не было UB, Карл!!!
но если при использовании unique_ptr не использовать всякие полиморфные прибамбасы, то UB не будет верно?
0
 Аватар для eva2326
1685 / 513 / 107
Регистрация: 17.05.2015
Сообщений: 1,524
21.03.2024, 20:06
Цитата Сообщение от _stanislav Посмотреть сообщение
но если при использовании unique_ptr не использовать всякие полиморфные прибамбасы, то UB не будет верно?
Правило простое: если статический тип не совпадает с динамическим, тогда нужен вирт. деструктор.

C++
1
2
3
4
5
// Cтатический тип: bаse
// Динамический тип: der
base* p = new der;
 
delete p; // Нужен вирт. деструктор
0
"C with Classes"
2022 / 1404 / 523
Регистрация: 16.08.2014
Сообщений: 5,885
Записей в блоге: 1
21.03.2024, 20:10
Цитата Сообщение от eva2326 Посмотреть сообщение
Правило простое: если статический тип не совпадает с динамическим, тогда нужен вирт. деструктор.
это я понял и знал и выступаю тоже евангелистом по этому поводу, но конкретно в данном коде UB конечно же есть, но хуже от этого не станет?
C++
1
2
3
4
5
struct A { virtual void f(); };
struct B : A {};
 
A * pa{ new B };
delete pa;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
21.03.2024, 20:10

Лишнее удаление родителя при создании класса наследника
Не могу понять откуда в выводе программы появляется первая надпись &quot;delete A&quot;. По идее надписей &quot;delete&quot; должно быть столько же,...

Правда, что указатель класса-наследника не может указывать на объект класса-родителя?
Доброго времени суток! Пример кода ниже. Правда ли , что указатель класса-наследника не может указывать на объект класса-родителя? ...

Сборка мусора у наследника и родителя
Добрый день. Есть класс родитель и класс наследник: public abstract class AbstractActivity extends AppCompatActivity { protected...

Доступ к private полю родителя из наследника
Здравствуйте! Изучаю Java, столкнулся с таким вопросом: Допустим, в родительском классе есть private-поле и private-метод. Вопрос: есть...

Вызывается метод родителя, а не наследника. (Проблема с наследованием в параметрах метода)
Помогите, пожалуйста, у меня есть класс Entity, в котором работает коллайдер. class Entity: public virtual void Visit(Bullet...


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

Или воспользуйтесь поиском по форуму:
23
Ответ Создать тему
Опции темы

Новые блоги и статьи
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео: https:/ / vkvideo. ru/ video-240781534_456239017 YouTube: eY5-5PyI9NM Текстовая версия
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru