Часовой пояс: UTC + 3 часа




Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 159 • Страница 3 из 8<  1  2  3  4  5  6 ... 8  >
  Пред. тема | След. тема 
В случае проблем с отображением форума, отключите блокировщик рекламы
Автор Сообщение
 

Member
Статус: Не в сети
Регистрация: 12.02.2004
Откуда: г. Новосибирск
Asteroid Ну на вкус и цвет....
Цитата:
Так что за билдер никого нет????
Неужели он так плох?

Плох не плох.... Если ты на нем сделаешь быстрее, круче итд чем на VC, то чем это плохо?

А все равно все сведется к маш кодам, так что можно и в них писать вот сколько на это времени только уйдет?
Весь вопрос в скорости создания ПО.
Софт слишком быстро стареет, поэтому этот вопрос ключевой (в свое время OS/2 проиграла форточке и-за того, что IBM потратила время на отладку и тестирование). Поэтому, если в какая-то среда может дать выигрыш в скорости, функциональности итд для КОНКРЕТНОЙ задачи, то почему бы не использовать именно эту среду?
Среда является ИНСТРУМЕНТОМ для решения задач! Можно конечно и микроскопом гвозди забивать....

[/quote]



Партнер
 

Advanced member
Статус: Не в сети
Регистрация: 09.06.2003
Откуда: USSR
Цитата:
Так что за билдер никого нет????
Неужели он так плох?

Да не плох он, просто если писать на C++ что-то системное , то лучше на VC++. :)


 

Member
Статус: Не в сети
Регистрация: 15.04.2004
Откуда: Москва
Ray Adams
или на GCC :)
А насчет билдера... К сожалению, Борланд (как и MS) решил что они самые крутые и стандарты им не указ :(
Поэтому, некоторые фрагметы кода, мягко говоря, работают не так как должны, а грубо говоря - ввобще не работают.

_________________
Цель жизни - d20 по жизни...


 

Advanced member
Статус: Не в сети
Регистрация: 09.06.2003
Откуда: USSR
Цитата:
К сожалению, Борланд (как и MS) решил что они самые крутые и стандарты им не указ

Они сами эти стандарты и выдумывают. А кто им указ если так посмотреть? GCC? :)


 

Member
Статус: Не в сети
Регистрация: 15.04.2004
Откуда: Москва
ANSI C++ 99. Или у тебя другое мнение? :-)

_________________
Цель жизни - d20 по жизни...


 

Advanced member
Статус: Не в сети
Регистрация: 09.06.2003
Откуда: USSR
А есть разве какие то не соответствия?


 

Member
Статус: Не в сети
Регистрация: 15.04.2004
Откуда: Москва
Есть. И к сожалению, очень грубые.
Привожу пример:
Код:
#include <iostream>
using std::cout;
using std::endl;

struct test_t {
  int val;
  test_t() {
     cout<<"Конструктор по умолчанию"<<endl;
  }
  test_t(int val) : val(val) {
    cout<<"Копирующий конструктор"<<endl;
  }
  ~test_t() {
    cout<<"Деструктор со значением "<<val<<endl;
  }
};

int main() {
  size_t arg_size = sizeof test_t(666);
  cout<<"Размер структуры test_t = "<<arg_size<<endl;
  return 0;
}

По правилам ANSI C++ sizeof вычисляется на этапе компиляции.
Так и есть, для gcc, vc++.
Но билдак не вызывая ни один конструктор вызывает зачем-то деструктор...
Теперь предсавь себе, что я пишу код:
Код:
struct test_t {
  int *buffer;
  test_t(int *value, const size_t valueSize ) {
   buffer = alloc(valueSize);
  }
  ~test_t() {
    free(buffer);
  }

У меня не предусмотрен конструктор по умоланию, ибо он никогда в коде вызываться не будет!
Все нормально, на всех компиляторах кроме BCB. На BCB естественно, access violation.


 

Advanced member
Статус: Не в сети
Регистрация: 09.06.2003
Откуда: USSR
К сожалению я не силен в обьектном Си да и Дебилдера у меня нету для проверки. Но могу предположить, что у Builder свои понятия при работе с ООП.


 

Member
Статус: Не в сети
Регистрация: 15.04.2004
Откуда: Москва
Ага, свои.:) Типа вызова деструктора без конструктора.. :)
И еще один камень в огород Борланда (точнее, на те грядки, где произрастает С).
Насколько неплохо реализована VCL в Дельфях, настолько криво это сделано в С.
В С VCL целиком "утянута" из дельфевого кода, и не использует некоторые возможности С.
Например, в качестве списков используется TList, хотя C предлагает более удобный механизм vector.

_________________
Цель жизни - d20 по жизни...


 

Advanced member
Статус: Не в сети
Регистрация: 09.06.2003
Откуда: USSR
Avaddon А я и писал выше, что Builder это игрушка, которую делали на основе Delphi и советовал юзать VC++. :)

Цитата:
Ага, свои. Типа вызова деструктора без конструктора..

Я просто не совсем твой код понял, так как сам никода не связывался с такими делами. На Delphi не бывает записей (Delphi record/ C++ struct) которые ведут себя как обьекты. Иначе бы проверил. :)


 

Member
Статус: Не в сети
Регистрация: 15.04.2004
Откуда: Москва
Ray Adams
Цитата:
На Delphi не бывает записей (Delphi record/ C++ struct) которые ведут себя как обьекты.

Батенька, вы в корне не правы! :)
Код:
 Type
   TAlaCStruct = object
     fld: Integer;
     constructor Init;
     destructor Done;   
     procedure PrintRec;
   end;
....
var
  A: TAlaCStruct; //Статическое объявление, вызова конструктора не требует!
  B: ^TAlaCStruct; // динамика
begin
  A.fld := 10; // Ок!
  B := New(TAlaCStruct,Init); // конструктор вызываем вручную...
  A.PrintRec;
  B^.fld :=  20;
  ...
  Dispose(B,Done); // и деструктор вручную...
  // Для A ни конструктор ни деструктор вызывать не надо...

_________________
Цель жизни - d20 по жизни...


 

Advanced member
Статус: Не в сети
Регистрация: 09.06.2003
Откуда: USSR
Type
TAlaCStruct = object
fld: Integer;
constructor Init;
destructor Done;
procedure PrintRec;
end;
....
Это не запись! Это обьект, ты путаеш его с
Код:
Type MyRec=record
id:byte;
...
end;


Добавлено спустя 2 минуты, 12 секунд:
Хотя хелп и пишет
Цитата:
Since object types do not descend from TObject, they provide no built-in constructors, destructors, or other methods. You can create instances of an object type using the New procedure and destroy them with the Dispose procedure, or you can simply declare variables of an object type, just as you would with records.

Но это не одно и тоже. Вообще я давно уже отошел от object, для нормального дела есть class!


 

Member
Статус: Не в сети
Регистрация: 15.04.2004
Откуда: Москва
Ray Adams
Не путаю. Просто говорю, что сишные структуры с методами могут быть реализованы в паскакале через объекты :)
А то, что паскаль не вызвает автоматически конструкторы/деструкторы это известно.:)
class - чисто динамическая структура.
Да, она удобнее в большинстве случаев.
Однако, иногда требуется создать статическую структуру данных+методы их обработки.
Выход - либо писать пользуясь процедурной идеологией, либо использовать объекты.
Причина отказа от динамики - количество объектов фиксированно + требуется быстро создавать их.
быстро - в пределах нескольких тактов.

_________________
Цель жизни - d20 по жизни...


 

Member
Статус: Не в сети
Регистрация: 12.02.2004
Откуда: г. Новосибирск
В си стандарты - извечная проблема... столько мучился с совместимостью Borland C++3.1 и Turbo C++ что просто ужас...
Тоже постоянные ошибки памяти!
Что поделать - ANSI C слишком гибкий и позволяет добавлять/убирать и бог что еще делать с компилятором

Недавно столкнулся со следующей проблемой: программа написаная под VC 7.0
РАБОТАЕТ на: Windows XP, 98
НЕ РАБОТАЕТ на Windows NT sp6!
Ругается на память, что это может быть? Может кто-то сталкивался с подобными вещами?
На ЭнТи нет возможности поставить среду :(


 

Advanced member
Статус: Не в сети
Регистрация: 09.06.2003
Откуда: USSR
Avaddon Ну насчет этого я вкурсе :), а насчет совместимости, кто их знает о чем они думают. Производители такого софта иногда просто плюют на стандарты! Паскаль в Delphi тоже уже очень далек от стандартов :)


 

Advanced member
Статус: Не в сети
Регистрация: 30.08.2003
Откуда: Санкт-Петербург
Ray Adams
Зато Дельфийский паскаль хорош в одном отношении:
он почти в гордом одиночестве :)
Кто в последний раз юзал сторонний компилер паскаля? а? Или кто-нибудь кроме Дельфей что-нить паскалевское знает?
(FPC, паскаль в *NIX:) и еще ПАРА других)

_________________
{:€ дед в законе :-) нородный окодемег
почетный пользователь OpenSuSE 11.3
Ремонт и модернизация ноутбуков IBM (Lenovo) ThinkPad


 

Advanced member
Статус: Не в сети
Регистрация: 09.06.2003
Откуда: USSR
Root
Цитата:
он почти в гордом одиночестве
Зато в каком одиночестве! :)
Тотже FreePascal постоянно обещает совместимость с кодом Дельфи :). Можно сказать Borland сам придумал новый стандарт Pascal. В принципе не вижу тут ничего страшного, альтернативы Паскалю от Борланда пока нету. Сам лично тыкал несколько вариантов, но все они ой как далеки от совершенства.
Другое дело Си, на нем многое постояное, если не сказать ВСЕ , в плане ОС. Так что надо как минимум поддерживать стандарты.
Это к примеру также относится и серверам базы данных. Они также обязаны поддерживать SQL стандарт, а все что выше это уже личные навороты.


 

Advanced member
Статус: Не в сети
Регистрация: 30.08.2003
Откуда: Санкт-Петербург
Цитата:
А я и писал выше, что Builder это игрушка, которую делали на основе Delphi и советовал юзать VC++.

Я тож про это же говорил. Поносно получаетсяю...
Цитата:
новый стандарт Pascal.

Так оно и получается, но проблемы нет, т.к. ТОЛЬКО Борландом здесь и пользуются :) А остальные компилеры гораздо хуже (чего только стоит конвертер Pascal->C) и они, как правило, подстраиваются под Боралнд.
Хотя FPC, к примеру, отличился поддержкой кривых расширений Паскаля вроде Сишных стандартных операторов (++,-- и прочие)
А теперь на тему стандартов С/C++.
Тут уже упоминали
Цитата:
ANSI C++ 99.

А сколько ЕЩЕ было стандартов? Много. Вот и путаница. Воистину, ЛУЧШЕЕ враг ХОРОШЕГО.
Был хороший язык С, но людям захотелось лучшего и начали его дополнять, дополнять и дополнять. Каков результат? Куча несовместимых реализаций! Даже в пределах линейки компиляторов одной фирмы! Я тут пытался VC3 проект скомпилить в VC6. Не компилится! Почему? А стандарты разные :( :( :gun:
На практике иногда проще переписать программу, чем боротся с этими багами.

_________________
{:€ дед в законе :-) нородный окодемег
почетный пользователь OpenSuSE 11.3
Ремонт и модернизация ноутбуков IBM (Lenovo) ThinkPad


 

Member
Статус: Не в сети
Регистрация: 08.05.2004
Откуда: Novosibirsk
Root ты б еще попробовал скомпилять проект из VC1 в VC7.NET!!!)))))
Кстати всем C forever.С - это САМЫЙ универсальный и гибкий язык. А на делфях у нас и девушки лабают без проблем!!!!!!!!!!!!!! И касяков в делфях просто *****. Я как то к базе данных интерфейс лабал. Пришел _ManiaC_ и запустил дебаг - потом час винду переставляли(ничто в этом мире ее больше не привлекало))))))))))

_________________
All Cool, Style In All


 

Advanced member
Статус: Не в сети
Регистрация: 09.06.2003
Откуда: USSR
Цитата:
И касяков в делфях просто *****.

Все косяки делают РУКИ :), а не компиляторы.


Показать сообщения за:  Поле сортировки  
Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 159 • Страница 3 из 8<  1  2  3  4  5  6 ... 8  >
-

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB | Kolobok smiles © Aiwan