Змінюй хід війни! Допомагай ЗСУ!
  • Знижка на баннерну рекламу 30%! Банер на всіх сторінках сайту, в мобільній та десктопній версії за 14 тис. грн на місяць. Статистика сайту. Контакт: kharkovforum.com@gmail.com

си

  • Автор теми Автор теми vadon4ik
  • Дата створення Дата створення
... но тем не менее никто не заставляет девелопера их использовать. ;)

А вот тут признаюсь слаб... НО есть у меня подозрения, что далеко не все фичи можно "неиспользовать", например полностью отключить обработку исключений.
 
Разница думаю очевидна.

разница совсем не очевидный пример. И уж тем более разницу между C и C++ по этому примеру точно не видно.

Работать в С с объектами? Интересно как? Скрещение бегемота с насорогом с написанием своей таблицы виртуальных функций и т.д.?

также как и в любом другом языке. ООП - это не язык, а парадигма и писать объектный код можно фактически на любом языке, не зависимо от того, есть ли нативная поддержка ООП. ООП прекрасно работает даже на ассемблере.

И каким же боком ООП направленность обусловила различия в синтаксисе? Можете привести пример?

ну например попробуй этот код скомпилить компилятором Си и компилятором C++. И увидишь отличия ;)
Код:
	printf("TEST");
	int i = 123;
	printf("%i", i);
	int j(456);
	printf("%i", j);

Ну тут вообще пять без разговоров :)
У Вас смешались люди и кони в одну кучу :)

не буду показывать пальцем, у кого тут смешались люди и кони, просто намекну. Много вы знаете RTOS ядер на C++, сертифицированных для применения в авионике? На C таковые имеются.

Ну и как пример, помнится лет 8 назад писал на C++ что-то для статанализа с матричными вычислениями на шаблонах и наткнулся на интересный баг. В MSVC шаблон компилися одним образом, а в Borland совсем другим, давая разные результаты в зависимости от типа компилятора. Фишку к сожалению уже не помню, что-то связанное с синтаксисом шаблонов. Вот вам и mission critical на C++ :)
 
Останнє редагування:
разница совсем не очевидный пример. И уж тем более разницу между C и C++ по этому примеру точно не видно.
РАзница может быть неочевидна тем, кто не видел объемных комерческих продуктов написанных на С и С++. Общий там только синтаксис.

также как и в любом другом языке. ООП - это не язык, а парадигма и писать объектный код можно фактически на любом языке, не зависимо от того, есть ли нативная поддержка ООП. ООП прекрасно работает даже на ассемблере.
Ну с таким подходом и интернет магазины можно писаь на ассемблере :)

ну например попробуй этот код скомпилить компилятором Си и компилятором C++. И увидишь отличия ;)
Код:
	printf("TEST");
	int i = 123;
	printf("%i", i);
	int j(456);
	printf("%i", j);
Да, ты прав, вопрос снимается.

не буду показывать пальцем, у кого тут смешались люди и кони, просто намекну. Много вы знаете RTOS ядер на C++, сертифицированных для применения в авионике? На C таковые имеются.
И??? Кто-то с этим спорил? Кесарю-Кесарево. Но причем здесь строгость языка? Более строгий как раз С++, в то время когда С позволяет кастить почти все почти ко всему, и вытварять с кодом и с данными практически все что угодно.

Ну и как пример, помнится лет 8 назад писал на C++ что-то для статанализа с матричными вычислениями на шаблонах и наткнулся на интересный баг. В MSVC шаблон компилися одним образом, а в Borland совсем другим, давая разные результаты в зависимости от типа компилятора. Фишку к сожалению уже не помню, что-то связанное с синтаксисом шаблонов. Вот вам и mission critical на C++ :)
Вспомнила бабка когда девкой была :) А когда я лет 10 назад начинал писал на С канали вот такие конструкции:
PHP:
int main()
{
    rez = 0;
    return rez;
}

Что же касается "бага":
1 - Есть такая вещь как undefined behavior - ситуации, которые неописаны в стандарте и отданы на откуп разработчикам. В таких условиях поведение различных компиляторов может быть различным - от ошибки до "своей трактовки".
2 - ДАже если это defined behavior - то даже, сейчас, неговоря уже о тех далеких годах далеко не все компиляторы на 100% соответствуют стандартам языка.

Это касается как компиляторов С, так и С++.

Кстати насчет undefined behavior в С :), помните, например, баянистый баг с линуксои, флешплеером и функцией memcpy ;)
 
И??? Кто-то с этим спорил? Кесарю-Кесарево. Но причем здесь строгость языка? Более строгий как раз С++, в то время когда С позволяет кастить почти все почти ко всему, и вытварять с кодом и с данными практически все что угодно.
Код:
class A
{
public:
  int k;

  A(int j){ k = j; }; 
};

int f(A a)
{
  return a.k;
}

int main(void)
{
  printf("%d", f(10));
  return 0;
}
⚠ Тільки зареєстровані користувачі бачать весь контент та не бачать рекламу.

ОК :D
 
Код:
class A
{
public:
  int k;

  A(int j){ k = j; }; 
};

int f(A a)
{
  return a.k;
}

int main(void)
{
  printf("%d", f(10));
  return 0;
}
⚠ Тільки зареєстровані користувачі бачать весь контент та не бачать рекламу.

ОК :D

И??? Если тебя смущает неявный вызов конструктора, то наверное С тебя должен смутить еще больше чем нить таким, валидным с точки зрения компилера :)

PHP:
int i = 0;
SomeFuncType f = (SomeFuncType) i;
 
И??? Кто-то с этим спорил? Кесарю-Кесарево. Но причем здесь строгость языка? Более строгий как раз С++, в то время когда С позволяет кастить почти все почти ко всему, и вытварять с кодом и с данными практически все что угодно.

а C++ разве не позволяет кастить все ко всему? ;) Я больше скажу, даже C# позволяет кастить все ко всему :)
Проблема С++ для safe critical задач в том что шаблоны, множественное наследование и т.п. вносят слишком много неопределенности в код. Во первых сложней создать парсер для верификации. Во вторых намного большее количество фич языка позволяют написать больше потенциально опасных конструкций. Ну и в третьих более сложный код дает больший риск появления ошибок

валидным с точки зрения компилера :)

PHP:
int i = 0;
SomeFuncType f = (SomeFuncType) i;

и что тут неоднозначного? то что размерность указателя может несоответствовать размерности int?
 
а C++ разве не позволяет кастить все ко всему? ;)
Попробуйте скомпилировать:
Код:
int i = 0; 
SomeFuncType f = static_cast<SomeFuncType>(i);

;)

Проблема С++ для safe critical задач в том что шаблоны, множественное наследование и т.п. вносят слишком много неопределенности в код. Во первых сложней создать парсер для верификации. Во вторых намного большее количество фич языка позволяют написать больше потенциально опасных конструкций. Ну и в третьих более сложный код дает больший риск появления ошибок
:) В том то и дело, что на С++ не надо писать сложного кода с большими рисками ошибок, это не С, который изначально придумывался как более простоя замена ассемблеру. С++ это исключительно язык высокоуровнего программирования для написания прозрачного кода, да там есть возможность писать на гараздоо более низком уровне, но и в разетку у вас при желании есть возможность засунуть палец, но вы же этого не делаете? Ведь верно?


и что тут неоднозначного? то что размерность указателя может несоответствовать размерности int?
Неоднозначности нет. Но если этот код написан по ошибке, ну например в есть какой нить адресс функции в переменной j, и человек просто ошибся при написании, то компилир С++ вернет ошибку, а вот С (и С стайл в С++) нет.
Хотя наверное это не слишком удачный пример. Вот получше:
Код:
double d = 0.0;
int* pi = static_cast<int*>(&d);

и

Код:
double d = 0.0;
int* pi = (int*) &d;
 
Не барское это дело, пэхапистам в сишников мутировать. ТС, учи Java или С# - намного проще и "ближе к телу" :D

Кстати, а почему вы все тут решили, что ТС нужен C++, а не Objective-C? сейчас куда как более популярен :)
 
C, C++, C#
Оригинальные названия...
Но как я понял слегка отличаются.

Ubivetz
Скинь ссылку на компилятор и на учебник плиз.
 
C, C++, C#
Но как я понял слегка отличаются.
Названия - да.

C, C++, C#
Ubivetz
Скинь ссылку на компилятор и на учебник плиз.
⚠ Тільки зареєстровані користувачі бачать весь контент та не бачать рекламу.

⚠ Тільки зареєстровані користувачі бачать весь контент та не бачать рекламу.

⚠ Тільки зареєстровані користувачі бачать весь контент та не бачать рекламу.


Компиллятор
⚠ Тільки зареєстровані користувачі бачать весь контент та не бачать рекламу.
(регистрация бесплатна)
или тут
⚠ Тільки зареєстровані користувачі бачать весь контент та не бачать рекламу.


Если надо совсем новую версию (4.2), то качай с аппстора тоже бесплатно.
 
В том то и дело, что на С++ не надо писать сложного кода с большими рисками ошибок

если бы не довелось поработать с очень большим проектом на C++, я бы может и поверил... :)

Вся прелесть Си в его простоте и элегантности. Никаких наворотов. При хорошем подходе и код получается тоже чистый и прозрачный.
 
если бы не довелось поработать с очень большим проектом на C++, я бы может и поверил... а так, поверить ну никак не могу :)

Ну если индусы писали на С++ то там может быть все что угодно. Нормальные люди, если пишут на плюсах работают где то на том же уровне абстракции что и джависты и в глубь не лезут.

C, C++, C#
Оригинальные названия...
Но как я понял слегка отличаются.

Ubivetz
Скинь ссылку на компилятор и на учебник плиз.

:рл: Я смотрю тонкий троллинг солнцеликого удался :)
 
Ну если индусы писали на С++ то там может быть все что угодно. Нормальные люди, если пишут на плюсах работают где то на том же уровне абстракции что и джависты и в глубь не лезут.

да нет, писали немцы и с абстракцией там было пожалуй даже черезчур... Все как полагается. Вот только прозрачным код назвать язык не повернулся бы. Скорее мозгодробильный. На джаве и шарпе такого точно не встретишь. Жуткая гремучая смесь шаблонов, множественного наследования и указателей :)
 
:D
:рл: Я смотрю тонкий троллинг солнцеликого удался :)



⚠ Тільки зареєстровані користувачі бачать весь контент та не бачать рекламу.

⚠ Тільки зареєстровані користувачі бачать весь контент та не бачать рекламу.

⚠ Тільки зареєстровані користувачі бачать весь контент та не бачать рекламу.


Компиллятор
⚠ Тільки зареєстровані користувачі бачать весь контент та не бачать рекламу.
(регистрация бесплатна)
или тут
⚠ Тільки зареєстровані користувачі бачать весь контент та не бачать рекламу.


Если надо совсем новую версию (4.2), то качай с аппстора тоже бесплатно.

Сколько........... 4 ГБ???
Я офигел слегка.:eek:

Ладно, что представляет собой ява?
прошу отписать...
 

Вкладення

  • 5689185_e147f971.webp
    5689185_e147f971.webp
    28.4 КБ · Перегляди: 105
Останнє редагування:
да нет, писали немцы и с абстракцией там было пожалуй даже черезчур... Все как полагается. Вот только прозрачным код назвать язык не повернулся бы. Скорее мозгодробильный. На джаве и шарпе такого точно не встретишь. Жуткая гремучая смесь шаблонов, множественного наследования и указателей :)

"Индус" в ИТ это не национальность, это кредо ;)
 
Deamon
Сколько весит?
 
Deamon
Сколько весит?

Не сочтите за тролинг, но что именно весит?
Девелопмент кит (считай компилятор)? Тогда какой из? Их насколько мне известно несколько и зависят они от набоа включенных библиотек.
Рантайм? Правда на нем не попрограмируешь?
ИДЕ? То какая? Можно ведь и в блокноте писать, а можно и в Эклипсе или нетбинсе.
Или речь идет о шарпе, который со студией идет?
 
Deamon
Сколько весит?
У тебя нет локалки или ты через GPRS качать собираешься?
Странные у тебя критерии выбора изучаемого языка - выбираешь не то что больше нравится, а где меньше всего скачивать.
Подойди на переменке к учителю и попроси у него.
 
Локалки нет!
Инет ОГО...
 
Назад
Зверху Знизу