BG Development


Страници: (5) [1] 2 3 ... последна »  ( Първото ново мнение ) Reply to this topicStart new topicStart Poll

> Наследяване в C++
iliyana
Публикувано на: 02-02-2024, 17:57
Quote Post



Име:
Група: Потребител
Ранг: Новопостъпил

Мнения: 1
Регистриран на: 02.02.24



Здравейте! Търсих навсякъде к намерих само следния вид наследяване:
class име_клас_наследник : тип_наследяване име_базов_клас
{
//Тяло на класа наследник
}

Въпросът ми е има ли и други видове наследяване в C++?
PMEmail Poster
Top
ici
Публикувано на: 02-02-2024, 18:59
Quote Post


Group Icon
Име: Ивайло Илчев
Група: VIP
Ранг: Почетен член

Мнения: 18699
Регистриран на: 06.06.04





--------------------
Ние не сме в една лодка, ние сме в една буря. Лодките са различни.

Следващият път когато се почувстваш ненужен, грозен и недооценен, помни че освен това си и тъп.
PMEmail PosterUsers Website
Top
Дон Реба
Публикувано на: 03-02-2024, 13:44
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 10296
Регистриран на: 11.11.06



QUOTE (ici @ 02-02-2024, 18:59)
https://sl.bing.net/jmQ0xWws2kS

тя пита какви ключови думи са валидни , а не за разни стратегии
мисля че всички спецификатори за достъп public, private, protected са валидни, както и virtual в допълнение
спецификаторите за достъп са досада, защото при наследяване който там е правил езика е решил че декларациите в базовия клас се отменят, това не знам защо, но факт. ако наследиш клас със някакви публични променливи в наследника вече не са публични. затова се ползва тоя спецификатор, за да ги укажеш да са публични и за наследника

virtual спецификатора служи за избягване на две копия на базовия клас при ромбично наследяване, което е абсурд да го разбереш в момента.


PM
Top
WizardKing
Публикувано на: 05-02-2024, 05:01
Quote Post



Име:
Група: Потребител
Ранг: Редовен член

Мнения: 528
Регистриран на: 12.08.23



Каква ви е реалната файда в ц++ от наследяване на повече от един клас? Сумати езици го изхвърлиха това като опция - стига ви един конкретен/абстрактен за база и множество контракти. Ромбоида винаги води до глава в бюрото.


--------------------
Screw You Guys, I'm Going Home!
PMEmail Poster
Top
BIGBUGEX
Публикувано на: 05-02-2024, 06:39
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 1722
Регистриран на: 30.11.04



Ако под контракти визираш интерфейси, ако се замислиш, това са класове без имплементация. От което следва, че в С++ можеш да наследяваш "интерфейси" с частична или дори цялостна имплементация. За пример да дам сорса на сайта който правих, където се ползва множествено наследяване на интерфейси с частична имплементация.
PMEmail Poster
Top
dvader
Публикувано на: 05-02-2024, 07:02
Quote Post


Group Icon
Име:
Група: VIP
Ранг: Почетен член

Мнения: 5251
Регистриран на: 12.07.05



QUOTE (WizardKing @ 05-02-2024, 05:01)
Ромбоида винаги води до глава в бюрото.

IUnknown гледа неразбиращо...


--------------------
I find your lack of faith disturbing
PM
Top
dvader
Публикувано на: 05-02-2024, 07:05
Quote Post


Group Icon
Име:
Група: VIP
Ранг: Почетен член

Мнения: 5251
Регистриран на: 12.07.05



QUOTE (WizardKing @ 05-02-2024, 05:01)
Каква ви е реалната файда в ц++ от наследяване на повече от един клас?

Нямаме нужда да кодим с IDE, което да изписва всички методи от родителя и да ги попълва със stub който вика реалният метод.


--------------------
I find your lack of faith disturbing
PM
Top
Дон Реба
Публикувано на: 05-02-2024, 10:35
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 10296
Регистриран на: 11.11.06



QUOTE (WizardKing @ 05-02-2024, 05:01)
Каква ви е реалната файда в ц++ от наследяване на повече от един клас? Сумати езици го изхвърлиха това като опция - стига ви един конкретен/абстрактен за база и множество контракти. Ромбоида винаги води до глава в бюрото.

никаква, но в живота понякога е така и трябва да избираме - или красотата или истината. аз ромбоид само веднъж в живота съм удрял, но като се наложи няма как, така всъщност научих че имало виртуално наследяване. тогава обаче бях ООП фенбойче, сега ако ми се наложи вероятно ще го фонтирам по някакъв елегантен начин, който би накарал ООП феновете да вият от ярост и да цъкат върху "репорт" бутона до кръв под ноктите.
PM
Top
dvader
Публикувано на: 05-02-2024, 10:55
Quote Post


Group Icon
Име:
Група: VIP
Ранг: Почетен член

Мнения: 5251
Регистриран на: 12.07.05



QUOTE (Дон Реба @ 05-02-2024, 10:35)
сега ако ми се наложи вероятно ще го фонтирам по някакъв елегантен начин, който би накарал ООП феновете да вият от ярост

Много ми е интересно как...


--------------------
I find your lack of faith disturbing
PM
Top
BIGBUGEX
Публикувано на: 05-02-2024, 11:55
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 1722
Регистриран на: 30.11.04



Между другото търсих начин как при ромбоидно наследяване да презапиша методите и на двата родителя с две отделни имплементации но не намерих начин. Това е слабост на езика и тия от комитета по стандартите трябва да адресират този проблем.
PMEmail Poster
Top
1 потребители преглеждат тази тема в момента (1 гости, 0 анонимни потребители)
Потребители, преглеждащи темата в момента:

Topic Options Страници: (5) [1] 2 3 ... последна » Reply to this topicStart new topicStart Poll

 


Copyright © 2003-2019 | BG Development | All Rights Reserved
RSS 2.0