
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[216.73.216.62] |
![]() |
|
Страницы: (117) « Первая ... 65 66 [67] 68 69 ... 116 117 ( Перейти к последнему сообщению ) |
![]() |
Сообщ.
#991
,
|
|
Годиться только для высокоуровневых абстракций. Для маленьких инструментиков, использующихся очень интенсивно будет слишком большой оверхед из-за, порой, никчёмных виртуальных вызовов. |
Сообщ.
#992
,
|
|
|
Цитата Romkin @ Цитата Alex Forth @ int *a; int b; a+=375-b; Если я правильно помню, то такое вычисление значения указателя в делфи невозможно без костылей ![]() ![]() inc(LongInt(a), 375-b); Ага, наглядно, до одурения ![]() Насколько я понял, это сделано ч-з явное преобразование к LongInt, который по Борландовому стандарту пожизни будет 32-х битовым. Добро пожаловать в мир IA64 ![]() |
![]() |
Сообщ.
#993
,
|
|
Сообщ.
#994
,
|
|
|
Цитата Орион @ Цитата (Romkin @ Сегодня, 15:39) Через имплементацию интерфейса. как именно, приведи пример Такой же, как в #1129? Там нет множественного наследования. Что-нибудь другое? Ну... Вот реальное: ![]() ![]() TScale = class(TAutoObject, IScale) private FScale: IScale; protected property Scale: IScale read FScale implements IScale; public procedure Initialize; override; destructor Destroy; override; end; destructor TScale.Destroy; begin FScale := nil; inherited; end; procedure TScale.Initialize; begin inherited; FScale := {Создаем класс реализации IScale}; end; |
Сообщ.
#995
,
|
|
|
Цитата Ты уж определись что-то подобное или это Я не знаю - не вникал! Цитата Ну давай, для начала расскажи мне как обойтись без типобезопасности. Нет уж, сначала ты расскажи, почему без нее нельзя обойтись ![]() Про cout (что его стандарт "впаривает", а принтф - запрещает) я вообще ничего не считаю, т.к. понятия не имею какой от него смысл. Видимо, он все-таки есть, но опять же, почему без него не обойтись? Ну а если и есть такой случай - так замечательно, много нового узнаю и буду юзать в дальнейшем ![]() |
![]() |
Сообщ.
#996
,
|
|
Цитата FFF1 @ Нет уж, сначала ты расскажи, почему без нее нельзя обойтись ![]() Потому что printf(i, "%d") при типе i не int, а double, к примеру, приведёт к непредсказуемым последствиям(или для Дельфи это нормально?). Добавлено И что значит не обойтись? Обойтись можно всегда без чего угодно. Дискретную математику думаю все изучали, так вот, там доказывается что длячего угодно достаточно инкремента(точнее ф-ции, которая возвращает i + 1)... |
Сообщ.
#997
,
|
|
|
Цитата archimed7592 @ Годиться только для высокоуровневых абстракций. Для маленьких инструментиков, использующихся очень интенсивно будет слишком большой оверхед из-за, порой, никчёмных виртуальных вызовов. Покажи мне хоть один виртуальный вызов в моем примере. |
![]() |
Сообщ.
#998
,
|
|
Цитата Smike @ Покажи мне хоть один виртуальный вызов в моем примере. Смайки, ты что, действительно думаешь, что интерфейс - это конструкция, не использующая полиморфизма(виртуальные ф-ции и иже с ними)? ![]() |
Сообщ.
#999
,
|
|
|
Цитата Alex Forth @ Ага, наглядно, до одурения Насколько я понял, это сделано ч-з явное преобразование к LongInt, который по Борландовому стандарту пожизни будет 32-х битовым. Добро пожаловать в мир IA64 И на старуху бывает проруха... integer там должен быть ![]() |
Сообщ.
#1000
,
|
|
|
Цитата Romkin @ Цитата Alex Forth @ Ага, наглядно, до одурения Насколько я понял, это сделано ч-з явное преобразование к LongInt, который по Борландовому стандарту пожизни будет 32-х битовым. Добро пожаловать в мир IA64 И на старуху бывает проруха... integer там должен быть ![]() Ок, пусть будет integer. Тянем этот исходник на аппаратную платформу, где размер указателя и целого различатся. Догадайся, что получится? ![]() |
Сообщ.
#1001
,
|
|
|
Цитата archimed7592 @ Смайки, ты что, действительно думаешь, что интерфейс - это конструкция, не использующая полиморфизма(виртуальные ф-ции и иже с ними)? ![]() В Delphi — да ![]() Добавлено Спасибо, изучу. Добавлено Цитата Alex Forth @ Тянем этот исходник на аппаратную платформу, где размер указателя и целого различатся. Догадайся, что получится? ![]() Integer всегда отражается разрядность архитектуры. В паскале он был 16-битовым. |
Сообщ.
#1002
,
|
|
|
Цитата Smike @ Цитата archimed7592 @ Смайки, ты что, действительно думаешь, что интерфейс - это конструкция, не использующая полиморфизма(виртуальные ф-ции и иже с ними)? ![]() В Delphi — да ![]() Больше никому про это не говори ![]() ![]() ![]() ![]() Цитата Integer всегда отражается разрядность архитектуры. В паскале он был 16-битовым. Да ну! А по какому параметру процессора определяется "разрядность архитектуры" ? |
Сообщ.
#1003
,
|
|
|
Цитата Alex Forth @ Больше никому про это не говори ![]() ![]() ![]() ![]() Ржать вы все мастера. А аргументировать? ![]() |
Сообщ.
#1004
,
|
|
|
Цитата Smike @ Цитата Alex Forth @ Больше никому про это не говори ![]() ![]() ![]() ![]() Ржать вы все мастера. А аргументировать? ![]() Компилишь пример, дизасемблируешь, изучаешь. Я бы тебе ключевые моменты листинга сбросил, да Делфей нету и ставить их в лом. |
Сообщ.
#1005
,
|
|
|
Цитата Romkin @ Что-нибудь другое? Ну... Вот реальное: не то, что имелось ввиду)))) хорошо, смотри: есть класс, который реализует поведение А и класс, который реализует поведение А1, а есть класс, который реализует поведение Б, а есть класс, который реализует поведение С. Тебе нужен класс Х, который реализует поведение А и А1(доступное всем) и поведение Б(доступное наследникам) и поведение С(доступное только классу Х). Как это будет выглядеть в не множественном наследовании? |