Форум программистов, компьютерный форум, киберфорум
ООП и паттерны
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.95/19: Рейтинг темы: голосов - 19, средняя оценка - 4.95
-1 / 4 / 0
Регистрация: 24.03.2012
Сообщений: 76

Теория ООП

16.03.2017, 16:30. Показов 4129. Ответов 48

Студворк — интернет-сервис помощи студентам
Назрело пару вопросов по ООП:

1) Наследуется ли конструктор базового класса? и можно с примерами небольшими.

2) В чем преимущества неизменяемых (Immutable) полей и классов?
Много читал, и выяснил что это объекты которые после создания нельзя изменить и так же они потоко-безопасны, может быть что то ещё ?

3) Альтернатива наследованию?
Здесь скорее всего требуется уточнение. Вычитал что альтернативой является композиция, но зачем в теории наследовать по другому? Чем плохо обычное наследование?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
16.03.2017, 16:30
Ответы с готовыми решениями:

ООП ради ООП
Доброго времени суток! Есть к примеру класс Cat который реализует интерфейс Movable, инкапсулирует цвет, и прочее. Имеет ли смысл...

Теория принятия решений Теория игр
Команды факультетов A и B определяют свои стратегии игры в первенстве университета по баскетболу. Оценивая возможности своих «запасных...

ООП
1) Для класса символьной строки определить отношение лексикографического порядка, перегрузив с помощью дружественной функции операцию...

48
Заблокирован
18.03.2017, 02:54
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Shamil1 Посмотреть сообщение
Это уже не конструктор, а просто метод, создающий экземпляр некого класса.
А как Вы определяете понятие "конструктор"? И почему нативный -- конструктор, а свой -- нет.
Цитата Сообщение от Shamil1 Посмотреть сообщение
Вы это сами придумали или прочитали где-то?
прочитал. Не только это. Там много чего. Не хочу это обсуждать, тысячи раз уже говорилось, видно не в коня корм.
0
Модератор
Эксперт функциональных языков программирования
3138 / 2286 / 469
Регистрация: 26.03.2015
Сообщений: 8,890
18.03.2017, 03:20
Цитата Сообщение от gototheultimate Посмотреть сообщение
прочитал. Не только это. Там много чего.
Где же Вы это прочитали?

Цитата Сообщение от gototheultimate Посмотреть сообщение
тысячи раз уже говорилось
Говорили Вы тысячу раз. Но ссылку на книгу или хотя бы статью так и не дали.

Цитата Сообщение от gototheultimate Посмотреть сообщение
А как Вы определяете понятие "конструктор"? И почему нативный -- конструктор, а свой -- нет.
Не я, а теоретики ООП.
"В объектно-ориентированном программировании конструктор класса (от англ. constructor) — специальный блок инструкций, вызываемый при создании объекта."
0
Заблокирован
18.03.2017, 03:53
Цитата Сообщение от Shamil1 Посмотреть сообщение
"В объектно-ориентированном программировании конструктор класса (от англ. constructor) — специальный блок инструкций, вызываемый при создании объекта."
ну, и в чем проблема?

Добавлено через 16 минут
Цитата Сообщение от Shamil1 Посмотреть сообщение
статью
http://c2.com/cgi/wiki?AlanKay... ctOriented

Из 6 прнципов которые там перечислены
1. EverythingIsAnObject.
2. Objects communicate by sending and receiving messages (in terms of objects).
3. Objects have their own memory (in terms of objects).
4. Every object is an instance of a class (which must be an object).
5. The class holds the shared behavior for its instances (in the form of objects in a program list)
6. To eval a program list, control is passed to the first object and the remainder is treated as its message.
решетка реализует только третий с натяжкой
0
Эксперт функциональных языков программированияЭксперт Java
 Аватар для korvin_
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,781
18.03.2017, 10:40
Цитата Сообщение от Shamil1 Посмотреть сообщение
Я говорю не о технических ограничениях, а ограничении бизнес-логики. Объект после вызова конструктора должен быть в консистентном состоянии, а для этого нужно вызвать конструктор с параметром.
Всё время работы конструктора объект находится в неконсистентном состоянии, а потом горе-кодеры, начитавшись какого-нибудь Шилдта, передают ссылку на this из конструктора во вне, в thread-объект какой-нибудь или listener. Впрочем, я уже приводил пример с Alien, где конструктор расширяется.

Цитата Сообщение от Shamil1 Посмотреть сообщение
И как же мне тогда обеспечить консистентность объекта (выполнение инвариантов)?
Как угодно:
- ограничить допустимые значения слотов типами
- использовать для публичного API отдельные функции создания объектов, а конструкторы оставить protected и переложить часть ответственности на кодеров, наследующих твой класс
- забить на наследование вообще и использовать только композицию
- понять, что жизьООП — боль и перейти на ФП с алгебраическими типами и иммутабельностью

Цитата Сообщение от Shamil1 Посмотреть сообщение
Нет. Дизайна проекта. Бизнес-логика.
Бизнес-логика реализуется на каком-то языке, с помощью средств этого языка.

Добавлено через 17 минут
Цитата Сообщение от Shamil1 Посмотреть сообщение
«В объектно-ориентированном программировании конструктор класса (от англ. constructor) — специальный блок инструкций, вызываемый при создании объекта.»
Эта фраза не говорит совершенно ничего о том, каким конструктор должен быть и что он не может быть определён программистом. Также не описана разница между конструктором и методом инициализации.

Вот, например:

Haskell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
new :: Class -> Initargs -> Object
new class initargs =
    let object = alloc Class
    in init object initargs
 
alloc :: Class -> Object
alloc class =
    let fields = System.allocStruct (getInstanceStruct class)
    in Object{ class, fields }
 
init :: Object -> Initargs -> Object
init object initargs = do
    object#init initargs
    return object
Где здесь конструктор?
0
Модератор
Эксперт функциональных языков программирования
3138 / 2286 / 469
Регистрация: 26.03.2015
Сообщений: 8,890
18.03.2017, 14:35
korvin_,
Такое впечатление, что Вы отвечаете только на последнее сообщение, забыв, о чём идёт речь.

Я спросил, как в языках, в которых нельзя ограничить область видимости конструктора, запретить вызывать дефолтный (без параметров) конструктор. И я не понимаю, какое отношение к этому имеет то, что Вы (вроде как, в ответ) написали в своём последнем сообщении.

Добавлено через 2 минуты
И, да, когда я задавал вопрос, я имел ввиду: вероятно, невозможность ограничения области видимости является недостатком языка.

Добавлено через 27 минут
Цитата Сообщение от korvin_ Посмотреть сообщение
Эта фраза не говорит совершенно ничего о том, каким конструктор должен быть и что он не может быть определён программистом.
Конструктор может быть определён программистом. Обычно "среда" предоставляет простейший конструктор по-умолчанию, а всё чуть более сложно пишет программист.

Цитата Сообщение от korvin_ Посмотреть сообщение
Также не описана разница между конструктором и методом инициализации.
Конструктор вызывается при создании объекта (до того, как этот объект можно будет использовать).
Что такое метод инициализации, я не знаю. Видимо, это любой метод, который Вы так назовёте.

Цитата Сообщение от korvin_ Посмотреть сообщение
Где здесь конструктор?
Конструктор - это код, который специально предназначен (синтаксисом языка) для вызова при создании объекта.
В следующем примере метод ToLower() вызывается при создании объекта, но это не делает его конструктором:
C#
1
2
3
4
5
6
7
8
public class MyClass
{
    public string Name { get; private set; }
    public MyClass(string name)
    {
        Name = name?.ToLower();
    }
}
Добавлено через 38 минут
Цитата Сообщение от gototheultimate Посмотреть сообщение
http://c2.com/cgi/wiki?AlanKaysDefin...ObjectOriented
Это написано не Алан Кеем. И это не тянет на нормальную статью. Вы бы ещё ссылку на статью в англо-русском словаре привели. Даже авторы статьи прямо пишут, что этот текст не является определением-ОО-по-Алану-Кею.

А, главное, в этой статье нет ни слова о том, о чём я спрашивал:
Цитата Сообщение от Shamil1 Посмотреть сообщение
Вы это сами придумали или прочитали где-то? (что Алан Кей считает, что если подкласс не может вызвать закрытый метод суперкласса, то это не оо язык)
Вы свои домыслы выдаёте за мысли Алана Кея.

Цитата Сообщение от gototheultimate Посмотреть сообщение
решетка реализует только третий с натяжкой
Прежде, чем писать о том, что C# не реализует, Вам следует изучить этот язык хотя бы на уровне середнячка.
А что-бы делать из этого дальнейшие выводы, нужно изучить хотя бы 5 принципиально разных языков.

з.ы. И в качестве прикола рабочий пример кода:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
    var Contact = Object.clone("Contact");
    println (Contact.type);
    println (Contact.proto().type);
    
    Contact.name = null;
    Contact.city = null;
    Contact.address = null;
    
    var holmes = Contact.clone("holmes").setName("Holmes").setAddress("221B Baker St").setCity("London");
    println($"name={holmes.name}; city={holmes.city}; address={holmes.address}");
    println(holmes.getSlot("address"));
 
    Contact.fullAddress = (Func<dynamic, string>)(obj => $"{obj.name}\n{obj.city}\n{obj.address}");
    println (holmes.fullAddress());
 
    Contact.fullAddress2 = method((name,city,address) => $"{name}\n{city}\n{address}");
    println(holmes.fullAddress2());
 
    println(holmes.getSlot("fullAddress"));
    println(holmes.fullAddress);
0
Заблокирован
18.03.2017, 16:55
Цитата Сообщение от Shamil1 Посмотреть сообщение
И в качестве прикола рабочий пример кода:
что, решетка может строки конкатенировать? Ну, круто, че.

Добавлено через 23 минуты
Цитата Сообщение от Shamil1 Посмотреть сообщение
И в качестве прикола рабочий пример кода:
Я правда не понял к чему это все было, но на всякий случай, на Io
Code
1
2
3
4
5
6
7
8
9
Contact := Object clone do(
   fullAddress := method("#{name}\n#{city}\n#{address}" interpolate) 
)
 
holmes := Contact clone do(
  name := "Holmes"; address := "221B Backer Street"; city := "London"
)
 
holmes fullAddress print
Ущербность решетки даже на наивных задачах налицо

Добавлено через 7 минут
Цитата Сообщение от Shamil1 Посмотреть сообщение
Что такое метод инициализации, я не знаю. Видимо, это любой метод, который Вы так назовёте.
это метод, который вызывается при вызове конструктора, чтобы явно не писать в конструкторе те поля, которые у всех экземпляров одинаковы

Добавлено через 1 минуту
Цитата Сообщение от Shamil1 Посмотреть сообщение
Конструктор может быть определён программистом
ну что же это Вы завиляли -- то может, то не может.

Добавлено через 4 минуты
Цитата Сообщение от Shamil1 Посмотреть сообщение
невозможность ограничения области видимости
в Io нет никакой невозможности ограничения области видимости.

Зато в решетке есть эта невозможность. Там это ограничение можно сделать только так, как дядя сказал. Гибкость отсутствует чуть более чем полностью. Я же могу сделать так, например, что один подкласс будет видеть, а другой -- нет. И вообще как угодно

Добавлено через 22 минуты
Цитата Сообщение от Shamil1 Посмотреть сообщение
И в качестве прикола рабочий пример кода:
кстати, сделайте на своем коде, вот так:
Code
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
Contact := Object clone do(
   printFullAddress := method(writeln; self foreachSlot(n, v, writeln(n .. ": " .. v)))
)
 
holmes := Contact clone do(
  name := "Holmes"; address := "221B Backer Street"; city := "London"
)
 
watson := Contact clone do(
  name := "Watson"; address := "111B Backer Street"; city := "London"
)
 
#vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
 
holmes printFullAddress
watson printFullAddress
holmes apartment := 100
watson city := "Manchester"
holmes printFullAddress
watson printFullAddress
 
#>>>>address: 221B Backer Street
#>>>>city: London
#>>>>name: Holmes
#>>>>
#>>>>address: 111B Backer Street
#>>>>city: London
#>>>>name: Watson
#>>>>
#>>>>address: 221B Backer Street
#>>>>apartment: 100
#>>>>city: London
#>>>>name: Holmes
#>>>>
#>>>>address: 111B Backer Street
#>>>>city: Manchester
#>>>>name: Watson
0
Модератор
Эксперт функциональных языков программирования
3138 / 2286 / 469
Регистрация: 26.03.2015
Сообщений: 8,890
18.03.2017, 17:33
Цитата Сообщение от gototheultimate Посмотреть сообщение
что, решетка может строки конкатенировать? Ну, круто, че.
Чтобы понять, Вам сначала нужно изучить синтаксис C#. А то Вы не знаете, даже как выглядит конкатенация строк на C#.

Цитата Сообщение от gototheultimate Посмотреть сообщение
Ущербность решетки даже на наивных задачах налицо
Налицо ущербность некоторых комментаторов.
Даю подсказку: если примере кода на C# не используется сложение чисел, то из этого не следует, что C# не позволяет складывать числа.

Цитата Сообщение от gototheultimate Посмотреть сообщение
но на всякий случай, на Io
Если хотите посмотреть, как выглядит на Io то, что делается в этом примере, то откройте Учебник на официальном сайте языка и перейдите к разделу Объекты.

Цитата Сообщение от gototheultimate Посмотреть сообщение
ну что же это Вы завиляли -- то может, то не может.
Понятно, что Вы пытались меня обмануть с Алан Кеем, подсовывая нерелевантную ссылку. Но так обманывать, мягко говоря, глупо. По-вашему выходит, что я почти каждый день пишу конструкторы для различных классов и при этом утверждаю, что программист не может написать конструктор...

Цитата Сообщение от gototheultimate Посмотреть сообщение
в Io нет никакой невозможности ограничения области видимости.
Вы выше в этом топике писали, что если подкласс не может вызвать закрытый метод суперкласса, то это не оо язык. Значит, в оо-по-gototheultimate языках невозможно метод суперкласса сделать невидимым для подкласса. Видимо, оо-по-gototheultimate - это настолько круто, что даже Ё не удовлетворяет всем критериям.

Цитата Сообщение от gototheultimate Посмотреть сообщение
Зато в решетке есть эта невозможность.
Вам откуда знать, что там есть и чего там нет? Вы в соседнем топике уже писали длинный список, чего, якобы, нет в C#...
0
Заблокирован
18.03.2017, 18:07
Цитата Сообщение от Shamil1 Посмотреть сообщение
языках невозможно метод суперкласса сделать невидимым для подкласса.
это влажные фантазии, не более того.
Цитата Сообщение от Shamil1 Посмотреть сообщение
Вам откуда знать, что там есть и чего там нет?
чтобы понимать язык не обязательно его знать. privat public ко-ко-ко. На этом все останавливается.
Цитата Сообщение от Shamil1 Посмотреть сообщение
то откройте Учебник на официальном сайте языка и перейдите к разделу Объекты.
Нашел. Что Вы этим хотите сказать?

Добавлено через 8 минут
Цитата Сообщение от Shamil1 Посмотреть сообщение
о откройте Учебник на официальном сайте языка и перейдите к разделу Объекты.
Цитата Сообщение от gototheultimate Посмотреть сообщение
Что Вы этим хотите сказать?
код примерно эквивалентен, там небольшой сахарок.

Вы не отвлекайтесь. Если Вы хотите сказать, что приведенный Вами код реализует объектную модель Io, выполняйте с помощью него код который я дал ниже. А так, опять все сводится writeln(copypaste), Вы в своем репертуаре.

Добавлено через 1 минуту
Цитата Сообщение от Shamil1 Посмотреть сообщение
Вы в соседнем топике уже писали длинный список, чего, якобы, нет в C#..
это был короткий список. Очень короткий
0
Эксперт .NET
 Аватар для Usaga
14343 / 9447 / 1359
Регистрация: 21.01.2016
Сообщений: 35,617
18.03.2017, 18:12
Цитата Сообщение от gototheultimate Посмотреть сообщение
чтобы понимать язык не обязательно его знать.
А если подумать над сказанным?..
0
Заблокирован
18.03.2017, 18:34
Цитата Сообщение от Usaga Посмотреть сообщение
А если подумать над сказанным?..
это уже продуманная версия. Главное в языке -- семантика.
Я почти любой код на любом языке могу прочитать. Везде, конечно есть тонкости, которые сразу не понять, но все эти жавы, плюсы решетки -- они одинаковы в принципе, там нет проблем с пониманием, там одинаковые модели ООП -- паста, паста и еще раз паста, нет первоклассных типов, куча примитивных типов, ортогональных объектной модели,нет мопа, рефлексии, сообщений и прочее. Еще объединяет уродство дизайна, куча частных случаев на каждый пук.

Добавлено через 4 минуты
Цитата Сообщение от gototheultimate Посмотреть сообщение
паста, паста и еще раз паста, нет первоклассных типов, куча примитивных типов, ортогональных объектной модели,нет мопа, рефлексии, сообщений и прочее. Еще объединяет уродство дизайна, куча частных случаев на каждый пук.
Да и наследования там нет, кроме, разве что, виртуальной хрени. То что там под наследованием понимается -- это трейты/миксины(с тз семантики). А вместо полиморфизма -- перегрузка
0
Эксперт .NET
 Аватар для Usaga
14343 / 9447 / 1359
Регистрация: 21.01.2016
Сообщений: 35,617
18.03.2017, 19:09
gototheultimate, я посмотрю, вы мастак чушь загонять
0
Заблокирован
18.03.2017, 19:20
Цитата Сообщение от Usaga Посмотреть сообщение
вы мастак чушь загонять
с чем то конкретно несогласны?
0
Эксперт функциональных языков программированияЭксперт Java
 Аватар для korvin_
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,781
18.03.2017, 23:40
Цитата Сообщение от Shamil1 Посмотреть сообщение
Конструктор - это код, который специально предназначен (синтаксисом языка) для вызова при создании объекта.
Ещё раз: что это за специально предназначенный код? Ответь, пожалуйста, на вопрос, что является конструктором в моём примере.

Цитата Сообщение от Shamil1 Посмотреть сообщение
Я спросил, как в языках, в которых нельзя ограничить область видимости конструктора, запретить вызывать дефолтный (без параметров) конструктор. И я не понимаю, какое отношение к этому имеет то, что Вы (вроде как, в ответ) написали в своём последнем сообщении.
Ты не это спрашивал, ну да ладно, очевидно ж: публичный конструктор — это публичный контракт класса, и ограничивать его нельзя. Отсутствие термина «дефолтный конструктор» решает все проблемы.
0
Заблокирован
19.03.2017, 02:07
korvin_, а кто тебе сказал, что конструктор обязан конструировать объект независимо от времени? конструирование объекта может быть вообще растянуто, и выполняться параллельно с другим кодом, это тебе не твое быдлофапе, где нет времени, тут мужская голова нужна, а не "безвременное отображение".
Code
1
2
3
4
5
6
object = ObjectConstructor(1, 2, 3)
то всего лишь сахар для 
object = newObject
object.foo = 1
object.bar = 2
object.baz = 3
Зачем же сразу уходить в депрессию домохозяйки математика адпета? Попробуй таблеточки, для начала. Или дойти, таки, до 3-й главы SICP.
0
Модератор
Эксперт функциональных языков программирования
3138 / 2286 / 469
Регистрация: 26.03.2015
Сообщений: 8,890
19.03.2017, 12:25
Цитата Сообщение от korvin_ Посмотреть сообщение
что это за специально предназначенный код?
Который нельзя вызвать в другом контексте (без "хаков", типа рефлекшена).

Добавлено через 1 минуту
Цитата Сообщение от magistr4815 Посмотреть сообщение
2) В чем преимущества неизменяемых (Immutable) полей и классов?
Много читал, и выяснил что это объекты которые после создания нельзя изменить и так же они потоко-безопасны, может быть что то ещё ?
3) Альтернатива наследованию?
Здесь скорее всего требуется уточнение. Вычитал что альтернативой является композиция, но зачем в теории наследовать по другому? Чем плохо обычное наследование?
Для обсуждения этих вопросов лучше создать две отдельные темы.
0
Заблокирован
19.03.2017, 12:34
Цитата Сообщение от Shamil1 Посмотреть сообщение
Который нельзя вызвать в другом контексте (без "хаков", типа рефлекшена).
это называется хардкор. Это вообще противоречит самой сути ООП.
0
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
20.03.2017, 13:05
Цитата Сообщение от Shamil1 Посмотреть сообщение
Конструктор не наследуется.
ложь.

Добавлено через 1 минуту
Цитата Сообщение от Shamil1 Посмотреть сообщение
"наследование конструктора" - это отсутствие возможности выбрать, какой из конструкторов использовать.
бред

Добавлено через 40 секунд
Цитата Сообщение от Shamil1 Посмотреть сообщение
Ни в одном из ОО языков закрытые методы не наследуются. Это следует непосредственно из определения закрытого метода.
это от низнания подкапотной кухни,
0
Модератор
Эксперт функциональных языков программирования
3138 / 2286 / 469
Регистрация: 26.03.2015
Сообщений: 8,890
20.03.2017, 15:17
Цитата Сообщение от hoggy Посмотреть сообщение
ложь.
ложь

Цитата Сообщение от hoggy Посмотреть сообщение
бред
бред

Цитата Сообщение от hoggy Посмотреть сообщение
это от низнания подкапотной кухни,
это от незнания, что такое наследование
0
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
20.03.2017, 15:38
Цитата Сообщение от Shamil1 Посмотреть сообщение
ложь
http://rextester.com/CQDYVQ46232

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
 
struct base
{
    base(int)
    {
        std::cout << "привет. я - конструктор base,"
            " который унаследовал der\n";
    }
};
 
 
struct der : base
{
    using base::base;
};
 
int main() 
{
    der {10};    
}
Цитата Сообщение от Shamil1 Посмотреть сообщение
бред
http://rextester.com/RTZL97924
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
#include <iostream>
 
struct base
{
    base(){}
    
    base(int)
    {
        std::cout << "привет. я - конструктор base,"
            " который унаследовал der\n";
    }
    
};
 
 
struct der : base
{
    using base::base;
    
    der(const char*)
        :base()
    {
        std::cout << "привет. я не просто унаследовал конструктор базы,"
            " но и могу выбрать любой другой\n";
        
    }
 
};
 
int main() 
{
    der {10};    
    der {"trololo"};
}
Цитата Сообщение от Shamil1 Посмотреть сообщение
это от незнания, что такое наследование
я сразу понял, что вы не умеете природу наследования.

я могу расписать вам её на самом низком уровне,
например для языка с++.

в том числе повызывать все закрытые методы базовых классов.
которые внезапно очень даже наследуются.
0
Модератор
Эксперт функциональных языков программирования
3138 / 2286 / 469
Регистрация: 26.03.2015
Сообщений: 8,890
20.03.2017, 17:27
Цитата Сообщение от hoggy Посмотреть сообщение
using base::base;
Я не знал про эту фичу. Спасибо. Значит, мой ответ устарел на 4 года (и, вообще, зависит от ЯП).
Там, действительно, наследование или компилятор автоматически создаёт конструкторы в der?

Цитата Сообщение от hoggy Посмотреть сообщение
бред
Ваш пример не имеет никакого отношения к "наследованию конструкторов". Я специально взял это словосочетание в кавычки. В том сообщении, где я его впервые использовал, я подробно описал, что именно я так назвал.
В следующий раз читайте, на что отвечаете.

Цитата Сообщение от hoggy Посмотреть сообщение
в том числе повызывать все закрытые методы базовых классов.
которые внезапно очень даже наследуются.
Повторяю: эти Ваши высказывания от незнания, что такое наследование.
Подсказка: Из того, что метод можно вызвать, не следует, что он наследуется.
C++
1
2
class A {public: int foo(); };
class B: public A {public: int foo(); };
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
20.03.2017, 17:27
Помогаю со студенческими работами здесь

ООП в JS
Добрый вечер. Пусть на странице есть 20 объектов. Под объектом будем понимать: инпут(ы) + слайдер. Каждый объект уникален - свой диапазон...

ООП
Прочитал в википедии про ООП, но так толком и не понял. Подскажите, чем является создание программ с интерфейсом, допустим как калькулятор...

C++ ООП
Просьба дать какую-нибудь интересную программу, дабы теста на курс ООП. Чтобы не из книжки, а реально придуманная про программистом, или...

ООП
помогите переделать программу в ООП, Создать класс, описывающий следующие понятие рабочий! фамилия,стаж,часовая зароботная плата,...

ООП
Привет всем, народ дайте какую-нибудь интересную задачку на ООП, (однообразные задачи из учебников достали уже), чтоб она затрагивала как...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Транскрипция 55-минутного видео через Whisper: WhisperDesktop облажался, спас Google Colab[
anaschu 01.06.2026
Понадобилось получить текст из свежезагруженного видео на YouTube. Казалось бы, задача на пять минут. Заняла полтора часа. Делюсь опытом — может кому пригодится последовательность решений. . . .
21 мат мед. Планы на развитие модели здравоСохранения
anaschu 01.06.2026
AnyLogic: план развития симуляционной модели рабочего коллектива — динамический абсентеизм, реальные данные, три сценария сравнения Продолжаю серию постов о дискретно-событийной модели рабочего. . .
20. Мат мед. Абсентеизм как отдельный тип простоя
anaschu 29.05.2026
Апдейт модели: исправленные баги, абсентеизм и новые механизмы Продолжаю развивать ранее описанную модель рабочего коллектива на AnyLogic. За последние несколько дней был проведён серьёзный. . .
19. здоровье, усталость и психотип работника влияют на производительность предприятия, и наоборот, производительность на здоровье, усталось и психотип
anaschu 28.05.2026
Дискретно-событийная модель рабочего коллектива на AnyLogic: здоровье, выгорание, психотипы и микростимуляция Привет, коллеги. Хочу поделиться итогами нескольких недель работы над симуляционной. . .
"Прокси" для последовательного порта
Eddy_Em 28.05.2026
Эту штуку написал я достаточно давно. Но сейчас вот понадобилось настроить датчик грозы, но при этом не отключать его от "метеодемона". Соответственно, надо запустить этот "прокси": метеодемон будет. . .
Рефакторинг программы уравнивания.
Massaraksh7 26.05.2026
Пример по предыдущей записи в блоге. Но, надо заметить, что, во-первых, там оптимизация не только математики, но и работы с базой данных, и с графами, а во-вторых, это ещё не всё.
Использование TThread в Lazarus для математических вычислений.
Massaraksh7 25.05.2026
Производя рефакторинг своих программ на предмет ускорения их работы, обратил внимание на такой аспект, как сокращение времени матвычислений. Дело в том, что приходится работать с большими матрицами. . .
Модель здравосохранения 18. Чем здоровее работник, тем быстрее выгорает
anaschu 24.05.2026
Имитационная модель корпоративного здравоохранения: что показывает математика Сегодня в модели рабочего коллектива на AnyLogic появились три новые механики — выгорание через накопленную усталость,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru