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

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

20.03.2024, 13:17. Показов 1683. Ответов 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
1673 / 501 / 107
Регистрация: 17.05.2015
Сообщений: 1,518
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
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru