Перейти к содержанию
    

Плавный переход C -> C++ под МК

26 minutes ago, EdgeAligned said:

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

угу. и модификатор final на класс.
Я тоже против тривиальных методов, но всё-таки это какой-никакой, но задел на будущее.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

И посему вопрос - а соппсна зачем писать свою реализацию дин.массива в показанном виде, если в стандартной библиотеке шаблонов STL уже прописаны несколько вариантов дин.массивов? В частности, самый распространенный вариант - vector. Ну или list.

У вектора есть особенность - память выделяется сразу на несколько элементов (можно указать, на сколько), а при добавлении элементов сверх этого размера выделяется увеличенный кусок памяти, элементы массива перекопируются в него, а предыдущая память освобождается. Таким образом, получается массив с быстрым произвольным доступом к любому элементу массива, но размер массива может изменяться при добавлении элементов.
В противоположность этому, список list - полностью динамическая вещь изменяемого размера, но доступ к элементам только последовательно через итераторы, а это медленнее.
Ну и есть еще симбиоз этих массивов - decue - двунаправленный список векторов.

Если будете писать самостоятельно, то всё равно реализуете один из этих вариантов.
В показанном выше варианте с array.Length = чето_там есть риск отрезать что-то лишнее или допустить утечку памяти. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 16.05.2024 в 21:08, Arlleex сказал:

А вот в "чистом" C++ есть что-то типа этого?

__property DynArrInt Length = {read=get_length, write=set_length};

Разве перегрузка операторов присваивания и приведения типа - не оно? Конечно запись их определения будет не такой компактной (может даже дополнительные типы данных придётся создать), но конечный результат вроде должен дать примерно то же самое.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я так понимаю, перегрузка оператора присваивания будет действовать для всего класса. Впрочем, на мой взгляд, ради записи значка = вся эта замута того не стоит. Современные редакторы способны при написании выполнять автоматические подстановки по первым введенным буквам. 
Касательно диалекта Borland С++, ну а оно нада прям вот? Косяков оригинального С++ и без диалектов хватает, они еще больше запутывают.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 18.05.2024 в 07:49, jcxz сказал:

Разве перегрузка операторов присваивания и приведения типа - не оно? Конечно запись их определения будет не такой компактной (может даже дополнительные типы данных придётся создать), но конечный результат вроде должен дать примерно то же самое.

Не думаю, что будет то же самое🙂 Вернее, будет совсем не так.

Прикол борланда еще в том, что он не только чтение запись поля пробрасывает в вызов приватной функции, но и чтение.
 

20 часов назад, EdgeAligned сказал:

Касательно диалекта Borland С++, ну а оно нада прям вот? Косяков оригинального С++ и без диалектов хватает, они еще больше запутывают.

Мне для всяких тестовых и сервисных утилит при разработке железок возможностей эмбаркадеры в подавляющем большинстве случаев хватает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 минуты назад, Arlleex сказал:

он не только чтение

 

4 минуты назад, Arlleex сказал:

но и чтение.

???

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не только запись, конечно же. Ошибся - поток мыслей опережает скорость клацания по кнопкам.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

57 минут назад, Arlleex сказал:

Прикол борланда еще в том, что он не только чтение запись поля пробрасывает в вызов приватной функции, но и чтение.

Я же вроде писал:

В 18.05.2024 в 07:49, jcxz сказал:

Разве перегрузка операторов присваивания и приведения типа - не оно?

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

21 минуту назад, Arlleex сказал:

Ошибся - поток мыслей опережает скорость клацания по кнопкам.

Клацаете настолько быстро, что даже вопрос, на который отвечаете, не успеваете полностью прочитать?   :wink:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 часа назад, jcxz сказал:

Клацаете настолько быстро, что даже вопрос, на который отвечаете, не успеваете полностью прочитать?   :wink:

ага🙂

Ну да, с перегрузкой действительно можно написать примерно то же, что делает борланд)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 19.05.2024 в 18:00, Arlleex сказал:

Ну да, с перегрузкой действительно можно написать примерно то же, что делает борланд)

Ну вот, дожили. Теперь используем всякие финты/костыли/растяжки в пуре с++, чтобы его приблизить к борланду. фэйспалм.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

26 минут назад, juvf сказал:

Ну вот, дожили. Теперь используем всякие финты/костыли/растяжки в пуре с++, чтобы его приблизить к борланду. фэйспалм.

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

И чтобы взять на заметку, вдруг где-то будет красивше/понятнее, чем вызов функции.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

29 minutes ago, Arlleex said:

Мне просто было интересно, за каким таким хэ борланд выдумал что-то свое взамен штатно имеющегося.

Видимо для снижения порога входа малограмотных бейсиководов ))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 hour ago, Arlleex said:

за каким таким хэ борланд выдумал что-то свое взамен штатно имеющегося.

Такая фишка уже миллион лет в си-шарпе есть. И это удобнее, чем заводить какой-то дополнительный тип и переопределять ему операторы.

Кто у кого скопировал (особенно с учётом факта, что дельфи и си-шарп создал один и тот же человек), я не знаю.

 

54 minutes ago, Forger said:

порога входа малограмотных бейсиководов

Билдер довольно странная штука, имхо. Идея "а давайте сделаем дельфи для тех, кто любит и умеет C++" привела к какой-то странной смеси - тут делаем по-дельфовски, а тут - по-сиплюсплюсному. Но это я билдер готовить не умею, да.

 

Ну и снижение порога входа - не так и плохо. Тут вон постоянно раздаются стоны, что сиплюсплюс очень сложный (Он и мне сложный, я все возможности не только не использую, но даже и не знаю. К сожалению).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Затем, что Борланд - это такая маленькая древняя фирмочка, занимавшаяся донакручиванием таких языков как Си/С++, Паскаль, ну и соппсна авторы языка Делфи.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

35 минут назад, esaulenka сказал:

Билдер довольно странная штука, имхо. Идея "а давайте сделаем дельфи для тех, кто любит и умеет C++" привела к какой-то странной смеси - тут делаем по-дельфовски, а тут - по-сиплюсплюсному.

Мне ни разу не приходилось что-то писать в рад студии на делфи)) Только плюсы. И то, плюсы там - одно название.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...