На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела:
1. Название темы - краткое описание кто/что против кого/чего
2. В первом сообщении - список параметров, по которым идет сравнение.
3. Старайтесь аргументировать свои высказывания. Фразы типа "Венда/Слюникс - ацтой" считаются флудом.
4. Давайте жить дружно и не доводить обсуждение до маразма и личных оскорблений.
Модераторы: Модераторы, Комодераторы
Закрыто archimed7592 11-03-2008: Лимит страниц. Продолжаем Delphi vs C++

Страницы: (117) « Первая ... 111 112 [113] 114 115 ... Последняя »  ( Перейти к последнему сообщению )  
> Delphi vs C++ , Часть 1
    ISC, мой вариант подойдет? :)

    Цитата
    А если при первом билде - то где хранить?


    Ну не мои это заботы, честное слово :) Пусть хоть в опциях текущего проекта, который использует юниты с интерфейсами. Все равно, не объявляя глобальный идентификатор вручную, я подписываюсь под тем, что за границы моего проекта интерфейсы не выйдут.
      Цитата --Ins-- @
      ISC, мой вариант подойдет?

      Там какая-то функция используется для инкримента? Не только синтаксис языка?
        Цитата --Ins-- @
        Ну не мои это заботы, честное слово Пусть хоть в опциях текущего проекта, который использует юниты с интерфейсами. Все равно, не объявляя глобальный идентификатор вручную, я подписываюсь под тем, что за границы моего проекта интерфейсы не выйдут.

        Вообще говоря, да, так наверно могли бы. Почему не сделано - сказать не могу.
          Цитата
          Не только синтаксис языка?


          Это не функция, а встроенная в язык конструкция. Так как эта "функция" работает с compile-time информацией, а именно - с типом типизированного указателя. Но если она тебя не устравает, то:
          ExpandedWrap disabled
            var
              pCh: PChar;
            begin
              pCh := 'test';
              pCh := pCh + 1;

          :tong:
            Цитата --Ins-- @
            Но если она тебя не устравает, то:

            Ну ладно. Ладно...
            А что такое PChar ?
            pCh - это как понял, по вашему переменная указатель на ...
              Цитата ISC @
              Цитата Taz @
              Что можно сделать на С++, того что нельзя сделать на Delphi?

              Ответ новичка не знающего Делфи:
              ExpandedWrap disabled
                char* pCh = "test";
                pCh++;

              Мейби я ошибаюсь, но вроде как-то вот так вот можно:
              ExpandedWrap disabled
                var
                  ptr: ^Char;
                  aWord: string;
                .....
                aWord := "test";
                ptr = @aWord[1];
                Inc(ptr,1);
                Цитата ISC @
                А что такое PChar ?
                pCh - это как понял, по вашему переменная указатель на ...

                Это "указатель на первый символ строки, заканчивающейся нулевым символом" :)
                  Цитата
                  А что такое PChar ?


                  Примерно то же самое, что и char*

                  Добавлено
                  Цитата
                  Вообще говоря, да, так наверно могли бы. Почему не сделано - сказать не могу.


                  Да, но мы с тобой так просто не сдаемся, так как это проблема конкретного компилятора, а не языка ;) Язык допускает интерфейсы без IID-ов.
                    Цитата Romkin @
                    Ты же знаешь Qt. И, подозреваю, гораздо лучше, чем я :)
                    И ты у меня это спрашиваешь? :blink:

                    Потому и спрашиваю, что знаю, что там никаких проблем с потоками нет. Точнее говоря, QString не является thread-safe, но CoW там реализован потоко-безопасно.

                    Цитата --Ins-- @
                    Но это уже проблема конкретного компилятора, а не языка.

                    А есть другие компиляторы? :)

                    Цитата --Ins-- @
                    Прочти выше, не хочу повторяться. ;)

                    Конкретно с тем что хранить длину строки в качестве первого(-ых) символа(-ов) пришло из паскаля или нет я не спорил. Я вообще говоря никаких утверждений относительно этого не делал. Так что лучше разберись с чем споришь ты :-P.

                    Цитата Romkin @
                    Просто указатель-то сместился. Как опознается, сколько надо освободить?

                    А ты где там освобождение увидел? ;)

                    Цитата Romkin @
                    А почему? Если basic_string - это базис, то почему не потомок?!

                    Если бы ты знал что представляет из себя basic_string, то понимал бы, что он не предназначен для наследования от него(да, да, такие классы в С++ бывают и их не мало). Другими словами наследование от этого класса ни к чему хорошему не приведёт.

                    Цитата --Ins-- @
                    var
                    pCh: PChar;
                    begin
                    pCh := 'test';
                    Inc(pCh);

                    Кстати, вот такой код:
                    ExpandedWrap disabled
                      procedure foo(s: string);
                      var pCh: PChar;
                      begin
                        pCh = s;
                        Inc(pCh);
                      end;

                    как здесь будет действовать ваш премудрый reference counter? :)



                    К слову, в сообщении Delphi vs C++ (сообщение #1895294) я попросил дельфистов сваять коротенькую прогу. Мне казалось, что в Дельфи для этого понадобится строк на 5-7 больше, чем в VBA... :)
                      Цитата --Ins-- @
                      Примерно то же самое, что и char*

                      Такая запись синтаксически неверна в C++. Есть просто char, то есть, символьный тип переменной.
                      И есть
                      ExpandedWrap disabled
                        char *pCh;
                      это обьявление указателя на переменную символьного типа.
                      Так что же все-таки у вас PChar ?
                        Цитата archimed7592 @
                        К слову, в сообщении Delphi vs C++ (сообщение #1895294) я попросил дельфистов сваять коротенькую прогу. Мне казалось, что в Дельфи для этого понадобится строк на 5-7 больше, чем в VBA...

                        Корректно написанная програ займет гораздо больше, чем даже тебе кажется. В экселе еще и с интернационализацией форматов засада, что надо учесть. Но ты что, уже считаешь, что Delphi - это такая своеобразная замена VBA?
                          Цитата ISC @
                          Такая запись синтаксически неверна в C++.

                          Да что ты говоришь :).
                          А как насчёт void foo(char *, int, char, double ***); ?

                          Цитата ISC @
                          Так что же все-таки у вас PChar ?

                          Тебе ж сказали, указатель на Char.
                            Цитата archimed7592 @
                            как здесь будет действовать ваш премудрый reference counter? :)

                            Пошлет в пешее эротическое на этапе компиляции. Ты должен явно писать pCh := @s[1] (или @s[0], не помню, православная у них индексация строк или языческая).
                              Цитата
                              А есть другие компиляторы?


                              Думаю, что есть :) Но даже если нет - это не дает тебе право проводить между языком и компилятором знак равенства :) Это два совершенно разных понятия. Язык - некий абстрактный набор правил. Компилятор - конкретный инструмент, позволяющий создавать продукт с использованием языка.

                              Цитата
                              как здесь будет действовать ваш премудрый reference counter?


                              Никак. Потому что это - не скомпилируется ;)

                              Цитата
                              К слову, в сообщении Delphi vs C++ (сообщение #1895294) я попросил дельфистов сваять коротенькую прогу.


                              Скажем я - не сваяю, несколько не мой профиль. А сидеть специально для этого разбираться - тоже не буду ;)
                                Цитата Romkin @
                                Не так давно стояла задача: есть библиотека с уже написанной реализацией интерфейса (например, IFoo), а тут потребовалось сделать коллекцию этих интерфейсов. Причем требовалось сделать именно враппер, расширить имеющийся интерфейс. Я просто сделал класс, реализующий интерфейс элемента коллекции плюс нужный интерфейс IFoo. И в качестве реализации IFoo взял имеющуюся.
                                По правде сказать, там я создаю класс явно, но вполне могу получать интерфейс и из другой библиотеки, меняется одна строка создания имплементации. Думаю, я все-таки разделю библиотеки в будущем.

                                Ничего не понял. Кто на ком стоял? На псевдокоде можешь показать - что именно ты сделал?

                                Цитата Romkin @
                                А почему? Если basic_string - это базис, то почему не потомок?!

                                Потому что разработчики предпочли предоставить свой собственный интерфейс и реализацию строки, наиболее подходящую для решаемой задачи, а не использовать имеющуюся. При этом были предложены способы преобразования одних строк в другие. Чем плохо?
                                1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Закрыто archimed7592 11-03-2008: Лимит страниц. Продолжаем Delphi vs C++



                                Рейтинг@Mail.ru
                                [ Script execution time: 0,1365 ]   [ 14 queries used ]   [ Generated: 21.05.24, 14:15 GMT ]