Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2008.10.26;
Скачать: [xml.tar.bz2];

Вниз

Чем вам лично не нравится 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 вся ветка

Форум: "Прочее";
Текущий архив: 2008.10.26;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.55 MB
Время: 0.007 c
2-1221795539
031178
2008-09-19 07:38
2008.10.26
Как объеденить 2 таблички в MS SQL


2-1221425519
Дима С
2008-09-15 00:51
2008.10.26
Событие изменния ComboBox-a


2-1221641606
vegarulez
2008-09-17 12:53
2008.10.26
Вопрос про DBGrid.DataSource.DataSet.FieldValues[];


15-1220416603
MdbPero
2008-09-03 08:36
2008.10.26
Экспорт схемы в Oracle


2-1221679625
SpinButton
2008-09-17 23:27
2008.10.26
SpinButton





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский