gianthare: (Default)
[personal profile] gianthare

Я очень люблю Луркмор все-таки
В программировании существует антипаттерн Паблик Морозов. Класс-потомок, созданный в соответствии с этим антипаттерном, выдает по запросу все данные класса-предка, независимо от степени их сокрытия.

Date: 2015-02-17 09:03 am (UTC)
From: [identity profile] mopexod.livejournal.com
Антипаттерн, скажут тоже... Это ого-го какой частый и нужный паттерн!
У меня даже есть паттерн для названий таких классов. Если, скажем, предок был CClass, то потомок - CFriendlyClass.
Edited Date: 2015-02-17 09:04 am (UTC)

Date: 2015-02-17 09:32 am (UTC)
From: [identity profile] gianthare.livejournal.com
Так может сразу CFriendlyClass делать и дело с концом

Date: 2015-02-17 10:04 am (UTC)
From: [identity profile] mopexod.livejournal.com
1) Это обычно нужно для чужого класса, у тебя нет доступа к его редактированию.
2) Это обычно нужно локально - делаешь локального потомка и в него кастишь папу.

Date: 2015-02-17 10:27 am (UTC)
From: [identity profile] gianthare.livejournal.com
Кокой ужас. Ты что же кастишь объект в класс к которому он не принадлежит?

Date: 2015-02-17 10:33 am (UTC)
From: [identity profile] mopexod.livejournal.com
Дык! В С++ добавление не-виртуальных функции ничего в body не меняет.
Я бы не стал это рекомендовать в качестве ежедневного средства всем подряд, но бывает нужно нередко.
Попробуй, это так приятно!

Date: 2015-02-17 10:34 am (UTC)
From: [identity profile] gingenius.livejournal.com
этот вопрос был на хайфской лиге когда ты еще даже ходил, по-моему )

Date: 2015-02-17 10:58 am (UTC)
From: [identity profile] gianthare.livejournal.com
В качестве вопроса ЧГК это ужасно.

Date: 2015-02-17 11:02 am (UTC)
From: [identity profile] catpad.livejournal.com
Это прекрасно.
Но на самом деле сделать же невозможно, если в предке данные определены как private или я уже ничего не понимаю ?

Date: 2015-02-17 11:53 am (UTC)
From: [identity profile] gianthare.livejournal.com
Можно считать, что речь идет о protected, но посмотри Сашин комментарий

Date: 2015-02-17 12:21 pm (UTC)
From: [identity profile] gianthare.livejournal.com
#define private public
#define protected public

Убил, просто убил

Date: 2015-02-17 02:01 pm (UTC)
From: [identity profile] mopexod.livejournal.com
До такого прекрасного я всё же не доходил...

Date: 2015-02-17 03:53 pm (UTC)
From: [identity profile] olkab.livejournal.com
Аааа! Картины возьмите, квартиру возьмите, только голову отдайте!

Date: 2015-02-17 02:07 pm (UTC)
From: [identity profile] mopexod.livejournal.com
Да, работает только для protected, и кажется, только для с++. Для c# и остальных, где нету настоящего static_cast, не прокатит.

Но каким образом?

Date: 2015-02-17 11:29 am (UTC)
From: (Anonymous)
Как он читает private?

Re: Но каким образом?

Date: 2015-02-17 11:53 am (UTC)
From: [identity profile] gianthare.livejournal.com
а) это шутка
б) речь может идти о protected

Profile

gianthare: (Default)
gianthare

February 2026

S M T W T F S
1234567
891011121314
15161718192021
222324 25 262728

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Mar. 6th, 2026 06:29 am
Powered by Dreamwidth Studios