Re[12]: отличия С++ и Си с классами
От: Максим Рогожин Россия  
Дата: 06.01.19 15:00
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>>>Принцип подстановки был и остается реализованным при открытом наследовании.

МР>>Ну все таки можете привести цитату или статью подтверждающую, это?
LVV>Какая вам цитата нужна, если в С++ принцип подстановки реализован?
А вы знаете что такое принцип подстановки Барбары Лисков? Может быть стоит ознакомиться?
Re[13]: отличия С++ и Си с классами
От: LaptevVV Россия  
Дата: 06.01.19 15:04
Оценка:
LVV>>>>Принцип подстановки был и остается реализованным при открытом наследовании.
МР>>>Ну все таки можете привести цитату или статью подтверждающую, это?
LVV>>Какая вам цитата нужна, если в С++ принцип подстановки реализован?
МР>А вы знаете что такое принцип подстановки Барбары Лисков? Может быть стоит ознакомиться?
Знакомьтесь.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[13]: отличия С++ и Си с классами
От: LaptevVV Россия  
Дата: 06.01.19 15:05
Оценка:
LVV>>Какая вам цитата нужна, если в С++ принцип подстановки реализован?
V>Принцип подстановки Барбары Лисков про выполнение инвариантов контракта интерфейса, про пред и пост условия, а не про просто возможность подстановки наследника вместо родителя.

Таким образом, идея Лисков о «подтипе» даёт определение понятия замещения — если S является подтипом T, тогда объекты типа T в программе могут быть замещены объектами типа S без каких-либо изменений желательных свойств этой программы

Что в практическом программировании повсеместно и используется.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[14]: отличия С++ и Си с классами
От: Voivoid Россия  
Дата: 06.01.19 16:08
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>

Таким образом, идея Лисков о «подтипе» даёт определение понятия замещения — если S является подтипом T, тогда объекты типа T в программе могут быть замещены объектами типа S

без каких-либо изменений желательных свойств этой программы



Re[15]: отличия С++ и Си с классами
От: B0FEE664  
Дата: 07.01.19 13:27
Оценка:
Здравствуйте, Voivoid, Вы писали:

LVV>>

Таким образом, идея Лисков о «подтипе» даёт определение понятия замещения — если S является подтипом T, тогда объекты типа T в программе могут быть замещены объектами типа S
V>

без каких-либо изменений желательных свойств этой программы

V>


V>


Что такое: "желательные свойства программы"? Если, например, ромбы сделать подтипом эллипсов и заменить все эллипсы на ромбы — это будет изменением "желательных свойств программы" или нет?
И каждый день — без права на ошибку...
Re[16]: отличия С++ и Си с классами
От: Voivoid Россия  
Дата: 07.01.19 23:15
Оценка:
Здравствуйте, B0FEE664, Вы писали:

BFE>Что такое: "желательные свойства программы"? Если, например, ромбы сделать подтипом эллипсов и заменить все эллипсы на ромбы — это будет изменением "желательных свойств программы" или нет?

У разработчика программы надо спросить В том же наследовании квадрата от прямоугольника ( и наоборот ) нет ранее описанной проблемы в случае, если в контракте нет методов изменяющих величины сторон
Re[2]: отличия С++ и Си с классами
От: kov_serg Россия  
Дата: 16.01.19 20:51
Оценка:
Здравствуйте, LaptevVV, Вы писали:

S>>как вы считаете чем С++ отличается от Си с классами

LVV>Виртуальные функции.
LVV>Си с классами не нуждается в виртуальных функциях — отдельные классы можно писать и без них.
Не как раз в C с классами виртуальные функции очень полезны.
Они позволяют удобно писать модули
// module.h
#pragma once
struct Api {
    enum { Const1, Const2 };
    virtual void seek()=0;
    virtual void read()=0;
};
extern Api& api;
// module.cpp
#include <stdio.h>

struct Api1 : Api {
    int count;
    Api1() { count=0; }
    void seek() { printf("%d api1.seek\n",++count); }
    void read() { printf("%d api1.read\n",++count); }
};
Api& api=Api1();
// usage.cpp
#include "module.h"

int main(int argc,char** argv) {
    api.seek();
    api.read();
    return 0;
}
Re: отличия С++ и Си с классами
От: Vain Россия google.ru
Дата: 02.02.19 15:55
Оценка:
Здравствуйте, sergey2b, Вы писали:

S>как вы считаете чем С++ отличаеться от Си с классами

В кратце: в с++ можно себе с комфортом, после грячей ванны, под чафечку кофэ и пластинку классической музыки, себе ноги прострелить. Причём пуля классически войдёт через ооп'у.
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
Отредактировано 02.02.2019 15:57 Vain . Предыдущая версия .
Re[6]: отличия С++ и Си с классами
От: landerhigh Пират  
Дата: 03.02.19 11:01
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>Любой будильник (производный тип) является часами (базовый тип), но обратное — неверно.

LVV>И это — РЕАЛИЗОВАНО в ЛЮБОМ языке.

Веселье в том, что будильник совершенно не обязан быть часами. Более того, он чаще всего является чем угодно, но не часами.
И вот на такой мелочи огромное число самодельных ООП архитектур конкретно так обделываются. Безотносительно языка программирования.
www.blinnov.com
Re[7]: отличия С++ и Си с классами
От: LaptevVV Россия  
Дата: 03.02.19 13:03
Оценка:
L>Веселье в том, что будильник совершенно не обязан быть часами. Более того, он чаще всего является чем угодно, но не часами.
L>И вот на такой мелочи огромное число самодельных ООП архитектур конкретно так обделываются. Безотносительно языка программирования.
Можно и отдельно.
Зависит от задачи и предметной области.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[2]: отличия С++ и Си с классами
От: YuriV  
Дата: 03.02.19 20:13
Оценка:
Здравствуйте, Vain, Вы писали:

V>В кратце: в с++ можно себе с комфортом, после грячей ванны, под чафечку кофэ и пластинку классической музыки, себе ноги прострелить. Причём пуля классически войдёт через ооп'у.


Стэндапер?
Re[8]: отличия С++ и Си с классами
От: landerhigh Пират  
Дата: 04.02.19 07:34
Оценка:
Здравствуйте, LaptevVV, Вы писали:

L>>И вот на такой мелочи огромное число самодельных ООП архитектур конкретно так обделываются. Безотносительно языка программирования.

LVV>Можно и отдельно.
LVV>Зависит от задачи и предметной области.

На самом деле практически не зависит. Будильник применительно к программированию — это сигнал. Наследовать будильник от часов означает заранее налагать определенные ограничения и требования как на поставщика этого сигнала, так и на подписчика.
Только и всего.
www.blinnov.com
Re[3]: отличия С++ и Си с классами
От: Vain Россия google.ru
Дата: 04.02.19 12:20
Оценка: :)
Здравствуйте, YuriV, Вы писали:

V>>В кратце: в с++ можно себе с комфортом, после грячей ванны, под чафечку кофэ и пластинку классической музыки, себе ноги прострелить. Причём пуля классически войдёт через ооп'у.

YV>Стэндапер?
Стендап прогер
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.