Вниз
Скачать: CL | DM;

Чем вам лично не нравится CPP?   Найти похожие ветки 

← →
XentaAbsenta ©   (2008-08-28 17:40) [0]

Мне интересны ваши мысли. Я прокомментирую по ходу


← →
Dennis I. Komarov ©   (2008-08-28 17:41) [1]

Читабельностью...


← →
oldman ©   (2008-08-28 17:45) [2]


> Чем вам лично не нравится CPP?
> Мне интересны ваши мысли.


"Откуда дровишки?" ©

В смысле, а почему оно нам не нравится?


← →
palva ©   (2008-08-28 17:46) [3]


> Чем вам лично не нравится CPP?

Знаю не в совершенстве. Отсюда некоторый комплекс, что я не настоящий программист.


← →
XentaAbsenta ©   (2008-08-28 17:55) [4]

тьфу блин... я рассчитывал увидеть конкретные вещи, а не начинать новую священную войну.
----------
var i, j, k : Integer;
или
int i, j, k;
и
function MyFunc (): Integer;
или
int MyFunc();

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


← →
oldman ©   (2008-08-28 17:57) [5]


> XentaAbsenta ©   (28.08.08 17:55) [4]
> тьфу блин...
> мне лично не нравится синтаксис


твои проблемы


← →
XentaAbsenta ©   (2008-08-28 17:57) [6]

кто-нибудь мне может объяснить, почему в cpp нет слова abstract?


← →
TUser ©   (2008-08-28 17:59) [7]

там еще много каких слов нет


← →
oldman ©   (2008-08-28 18:00) [8]


> XentaAbsenta ©   (28.08.08 17:57) [6]
> кто-нибудь мне может объяснить, почему в cpp нет слова abstract?
>


а в foxpro нет слова uses...
и что?


← →
Ega23 ©   (2008-08-28 18:01) [9]


> кто-нибудь мне может объяснить, почему в cpp нет слова abstract?


А в Delphi 7 шаблонов для списков нет...


← →
ketmar ©   (2008-08-28 18:12) [10]

Удалено модератором


← →
oldman ©   (2008-08-28 18:14) [11]

Удалено модератором


← →
ketmar ©   (2008-08-28 18:16) [12]

Удалено модератором


← →
XentaAbsenta ©   (2008-08-28 18:41) [13]

Ega23 ©   (28.08.08 18:01) [9]

>
> А в Delphi 7 шаблонов для списков нет.


Меня это тоже раздражает, но к CPP имеет очень косвенное отношение.
--------

oldman ©   (28.08.08 18:00) [8]

>
> а в foxpro нет слова uses...
> и что?
>


Я не знаю foxpro.


← →
XentaAbsenta ©   (2008-08-28 18:43) [14]


> TUser ©   (28.08.08 17:59) [7]
>
> там еще много каких слов нет
>


и некоторые очень бы пригодились..


← →
Mystic ©   (2008-08-28 18:49) [15]

> кто-нибудь мне может объяснить, почему в cpp нет слова abstract?

Там абстрактные функции называются чистыми виртуальными функциями (pure virtual)

> Чем вам лично не нравится CPP?

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


← →
@!!ex ©   (2008-08-28 18:54) [16]

А мне нравится С++.
Помойму вполне адекватный язык...
Позволяет сделать действительно красивые вещи...

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


← →
XentaAbsenta ©   (2008-08-28 18:56) [17]


> @!!ex ©   (28.08.08 18:54) [16]

Что, прям всё-всё нравится?


← →
@!!ex ©   (2008-08-28 19:00) [18]

> [17] XentaAbsenta ©   (28.08.08 18:56)

MFC не нравится. Но это не часть С++, да и не пользуюсь я им.
Вобщем то язык отличается только синтаксисос и это дело привычки...
Пожалуй единственное что не нравится по сравнению с Delphi - это отсутствие override и inherited.


← →
Ega23 ©   (2008-08-28 19:04) [19]


> Пожалуй единственное что не нравится по сравнению с Delphi


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


← →
Юрий Зотов ©   (2008-08-28 19:05) [20]

Тут как-то пример приводили...

int func(int x, int y) {
 return x - y;
}

int i = 1;
int f = func(i, i++);

Чему будет равно f ?


← →
Юрий ©   (2008-08-28 19:07) [21]

> [20] Юрий Зотов ©   (28.08.08 19:05)

0 ?


← →
@!!ex ©   (2008-08-28 19:10) [22]

> [20] Юрий Зотов ©   (28.08.08 19:05)

0 по идее?

А вообще это пример дурного кода. ИМХО.


> [19] Ega23 ©   (28.08.08 19:04)

в принципе это не такая уж и проблема, скорее дело привычки(ИМХО), да и инклюды имеет несколько преимуществ перед uses.


← →
Ega23 ©   (2008-08-28 19:12) [23]


> в принципе это не такая уж и проблема, скорее дело привычки(ИМХО)


Про grep я в курсе. Но - неудобно.


← →
Юрий Зотов ©   (2008-08-28 19:18) [24]

> Юрий ©   (28.08.08 19:07) [21]

Зависит от порядка вычисления выражений (аргументов при вызове функции), а он стандартом языка не регламентирован. В итоге может получиться, что один и тот же исходный код, но откомпилированный разными компиляторами, будет давать разные результаты. Что ужасно.

> @!!ex ©   (28.08.08 19:10) [22]

Конечно, это пример дурного кода. Даже ОЧЕНЬ дурного кода. Но если язык позволяет писать такой код, то это тоже очень плохо.


← →
@!!ex ©   (2008-08-28 19:22) [25]

> Зависит от порядка вычисления выражений (аргументов при
> вызове функции), а он стандартом языка не регламентирован.
> В итоге может получиться, что один и тот же исходный код,
> но откомпилированный разными компиляторами, будет давать
> разные результаты. Что ужасно.

Хм... Почему?
Вроде бы ++ после переменной говорит о том, что она будет инкрементирована ПОСЛЕ того, как будет использовани ее значение. Нет?


← →
Юрий Зотов ©   (2008-08-28 19:24) [26]

> @!!ex ©   (28.08.08 19:22) [25]

Предположим, сначала вычисляется второй параметр. Тогда чему будет равен первый?


← →
@!!ex ©   (2008-08-28 19:32) [27]

> [26] Юрий Зотов ©   (28.08.08 19:24)

Так он в этот момент еще не использован, значит не вычисляется.. разве нет?


← →
@!!ex ©   (2008-08-28 19:32) [28]

Хотя ++i дает уже не предсказуемый вариант... согласен...


← →
Юрий Зотов ©   (2008-08-28 19:40) [29]

> @!!ex ©   (28.08.08 19:32) [27]

1. Вычисляется значение ВТОРОГО аргумента. Оно будет равно 1.
2. Переменная i УЖЕ использована (для вычисления значения второго аргумента) и поэтому будет инкрементирована СРАЗУ после вычисления выражения.
3. Первый аргумент получится равным 2.
4. Результат будет равен 1.

Если же сначала вычисляется ПЕРВЫЙ аргумент, то результат будет равен нулю.


← →
Сергей М. ©   (2008-08-28 19:50) [30]


> Мне интересны ваши мысли. Я прокомментирую по ходу


А мне неинтересны "походные" комментарии моих мыслей)
Явился тут, "панимаишь", какой-то ЗентаАбсента с откровенным запахом дилетанта, но при этом "профипонтами") ..


← →
Asteroid ©   (2008-08-28 20:54) [31]

>  Чем вам лично не нравится CPP?
Отсутствием аналога "function of object", замороченностью с header-ами, отсутствием дельфийски-удобного редактора кода =)


← →
palva ©   (2008-08-28 21:03) [32]


> Отсутствием аналога "function of object"

А разве статический метод не аналог ?


← →
ketmar ©   (2008-08-28 21:10) [33]

>[16] @!!ex © (2008-08-28 18:54:00)
>Помойму вполне адекватный язык…

угу. с недосборщиком недомусора, да.

>[21] Юрий © (2008-08-28 19:07:00)
>0 ?

it depends. порядок вычисления операндов не специфицирован, постэффекты тоже. может быть func(1, 1), может func(2, 1).

>[25] @!!ex © (2008-08-28 19:22:00)
>Вроде бы ++ после переменной говорит о том, что она будет инкрементирована ПОСЛЕ
>того, как будет использовани ее значение.

угу. только компилер может решить, что второй операнд вычислить стоит первым. а ++ увеличивает значение сразу, а не после того, как всё выражение вычислено.

>[31] Asteroid © (2008-08-28 20:54:00)
>отсутствием дельфийски-удобного редактора кода =)

дада, это особенно! почему в g++ IDE не встроили?! %-)

зыж а мне вот нравится ровно одним: наличием Qt. за Qt я даже согласен простить цпп врождённый идиотизм.

---
All Your Base Are Belong to Us


← →
VirEx ©   (2008-08-28 21:15) [34]

> Чем вам лично не нравится CPP?

тем, что не компилируется в Delphi 7


← →
Asteroid ©   (2008-08-28 21:19) [35]

> А разве статический метод не аналог ?
Не аналог, доступ к не-статическим полям мне никто не обеспечит; если же объявлять каждую требуемую переменную как volatile....уж лучше обойтись без function of object =)
В принципе это реализуемо, но....хотелось бы нативную поддержку.


← →
KilkennyCat ©   (2008-08-28 22:39) [36]


> Сергей М. ©   (28.08.08 19:50) [30]
>
>
> > Мне интересны ваши мысли. Я прокомментирую по ходу
>
>
> А мне неинтересны "походные" комментарии моих мыслей)
> Явился тут, "панимаишь", какой-то ЗентаАбсента с откровенным
> запахом дилетанта, но при этом "профипонтами") ..


Присоединяюсь.
Добавлю, что если кому-то интересны чьи-то мысли и он хочет их узнать, то просьба должна быть более вежлива. Иначе это похоже на просьбу получить в челюсть.


← →
Alkid   (2008-08-28 22:42) [37]


> Asteroid ©   (28.08.08 21:19) [35]

Есть похожий аналог:

class A
{
public:
  void f1();
  void f2();
};

typedef  void (A::*ClassAFuncPtr)() ; // тип указатель на функцию-член класса A

void main()
{
 A a;

 ClassAFuncPtr ptr = &A::f1;

 (a.*ptr)(); // вызываем f1 для a

 ptr = &A::f2;

 (a.*ptr)(); // вызываем f2 для a
}


← →
Alkid   (2008-08-28 22:50) [38]

А теперь что мне не нравится в С++:

1. Система include`ов, отсутствие нормальной модульности.
2. Наличие нескольких темных моментов (типа приведенного примера с неустановленным порядком вычисления), которые дают возможность прострелить себе ногу. Но, вцелом, эти все страшилки больше  для примеров годятся. В реальных проектах на такое ни разу не напарывался.
3. Тяжкое наследие С.
4. Нет reflection.
5. Нет лямбд с замыканиями.
6. Нет *нормального* метапрограммирования. Всякие шаблонные извраты не в счёт.

Это так, навскидку. О том, что мне в С++ не нравится я могу говорить часами :)


← →
oxffff ©   (2008-08-28 23:32) [39]

А мне нравится С++.
Мне даже ABAP нравится.
И IL и С# нравится также.
И другие языки с которыми имел дело.


← →
GrayFace ©   (2008-08-28 23:39) [40]

Обилием костылей, отсутствием базового класса, разношерстными строками, хидерами.
(а Дельфийский принцып объявления объектов в interface и initialization даже удобнее, чем объявление не отходя от кассы типа C#, т.к. все автоматизировано горячими клавишами)

Asteroid ©   (28.08.08 20:54) [31]
Отсутствием аналога "function of object",

В Managed c++, вроде, есть такое.



Страницы: 1 2 3 4 вся ветка

Скачать: CL | DM;



Память: 0.55 MB
Время: 0.012 c
2-1221668340
Drowsy
2008-09-17 20:19
2008.10.26
Как из базы IB вытянуть список несистемных таблиц?


15-1220249423
oldman
2008-09-01 10:10
2008.10.26
Поздравляю с Днем знаний!


15-1220164701
Riply
2008-08-31 10:38
2008.10.26
Запись и чтение реестра.


4-1198486278
lead-in
2007-12-24 11:51
2008.10.26
функции RAS


15-1220005532
ekto
2008-08-29 14:25
2008.10.26
Asus-Lamborgini ноутбук




   Наверх