LINUX.ORG.RU

Потому что все пишут C/C++ и вообще воспринимают C как подмножество или ограниченную версию С++.

PolarFox ★★★★★
()

Почему в Develompent столько тем «Как сделать в С++ что-то?», а внутри вопрос по обычному php? Откуда такая каша в умах людей?

nanoolinux ★★★★
()
Ответ на: комментарий от nanoolinux

Может быть автары забыли уточнить что речь идёт не о каноничном похапе а о быдлосоциальных Hiphop/KPHP, компилируемых в плюсы?

svr4
()

Потому, что это не есть неправильно.
Си++ надмножество над Си.
Возможно с выходом последних стандартов что-то и изменилось, но вряд ли.

Stahl ★★☆
()
Ответ на: комментарий от PolarFox

И правильно делают. Лучше воспринимать C++ как «расширенный C», чем воспринимать его объектную модель как должное.

Sadler ★★★
()
Ответ на: комментарий от Sadler

Расширенный си - это ObjC. Ибо полностью обратно совместим, в отличии от. И если выбирать между ним и плюсами по упоротости - я выберу плюсы.

svr4
()
Последнее исправление: svr4 (всего исправлений: 2)

потому что приплюснутые думают что C это старая версия C++, которую никто не использует.

waker ★★★★★
()
Ответ на: комментарий от Stahl

Си++ надмножество над Си.

так было во времена C with classes

Возможно с выходом последних стандартов что-то и изменилось

«что-то» изменилось

vvviperrr ★★★★★
()
Ответ на: комментарий от Stahl

Си++ надмножество над Си.

у C и C++ есть общее подмножество, но C++ не поддерживает весь сишный синтаксис. причем довольно важные его куски. сразу вспоминаются variable-sized arrays и designated initializers. а еще в C++ более строгая типизация.

waker ★★★★★
()

Очевидно, потому что они днища.

maverik ★★
()
Ответ на: комментарий от dib2

Искать лень. Были вопросы, как написать чего-то там для веба на спп. Причём на вопрос зачем на спп, ответ был что-то типа „надо“.

nanoolinux ★★★★
()
Ответ на: комментарий от waker

вот, ради прикола написал сишечный пример, чтобы наглядно показать, какое это «подмножество C++».

#include <stdlib.h>
#include <string.h>
#include <stdio.h>

int main (int argc, char *argv[]) {
    struct {
        int a;
        char *s;
    } s = {
        .s = malloc (100),
        .a = 10
    };

    strcpy (s.s, "hello");

    int arr[argc];
    for (int i = 0; i < argc; i++) {
        arr[i] = s.a;
    }
    printf ("%s %d\n", s.s, arr[0]);

    return 0;
}

waker ★★★★★
()
Ответ на: комментарий от cvs-255

А в чем проблемы с его объектной моделью?

Как минимум наличие множественного наследования, отдельно хранимые заголовки и реализация классов, активное использование препроцессора и связанные с этим неочевидные методы взаимного использования объектов двух классов.

Sadler ★★★
()
Ответ на: комментарий от nanoolinux

читай про плюшки с99

еще один. что вы все в «новые» сишечки лезете? если даже древний c89 не является полным подмножеством крестов.

vvviperrr ★★★★★
()
Ответ на: комментарий от vvviperrr

это можно и на c89 показать

c89 вроде почти полное подмножество C++. кроме строгой типизации.

тыб еще вариадики притащил

они как раз в C и крестах одинаковые, с некоторых пор, если не путаю.

waker ★★★★★
()
Ответ на: комментарий от Sadler

отдельно хранимые заголовки и реализация классов

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

cvs-255 ★★★★★
()
Ответ на: комментарий от Stahl

Си++ надмножество над Си.

нет. Участок совместимости с Си, который есть в Крестах - это не Си. Но крестопоклонники щетают это Ъ

stevejobs ★★★★☆
()
Ответ на: комментарий от waker

c89 вроде почти полное подмножество C++. кроме строгой типизации.
почти

vvviperrr ★★★★★
()
Ответ на: комментарий от PolarFox

и вообще воспринимают C как подмножество или ограниченную версию С++

Но на самом-то деле C++ это ограниченная версия C. C более выразительный.

RisuX3
()
Ответ на: комментарий от nanoolinux

А что, новые плюшки с99 есть в крестах?

при чем тут плюшки? кресты не совместимы с сями даже на уровне с89. с новыми и подавно. минимумом нужно обходиться в доказательствах, ящитаю

vvviperrr ★★★★★
()
Ответ на: комментарий от vvviperrr

при чем тут плюшки?

при том, что плюшек с99 нету в спп.

кресты не совместимы с сями даже на уровне с89

я утверждал обратное?

ящитаю

щитай, разрешаю.

nanoolinux ★★★★
()
Ответ на: комментарий от Sadler

активное использование препроцессора

Вот этим как раз грешат в основном разработчики на C. Хотя конечно и на плюсах некоторые почему-то предпочитают ввернуть себе макросы, ради «удобства».

m0rph ★★★★★
()
Последнее исправление: m0rph (всего исправлений: 1)
Ответ на: комментарий от m0rph

Хотя конечно и на плюсах некоторые почему-то предпочитают ввернуть себе макросы, ради «удобства».

а ты небось из принципа даже #include не юзаешь?

waker ★★★★★
()
Ответ на: комментарий от vertexua

нет, я и тут не злюсь. И вообще, я добрый.

grondek
() автор топика
Ответ на: комментарий от quantum-troll

Потому, что у С++ обратная совместимость.

с чем?

vvviperrr ★★★★★
()
Ответ на: комментарий от nanoolinux

здесь как бы стандарты обсуждаются

А чего их обсуждать? Мы ж не стандартизационный комитет. Практическая сторона дела интереснее.

msvc вообще чихать хотел на них, и что?

Они потихоньку исправляются. В 2013 поддержали designated initializers, например.

Relan ★★★★★
()
Ответ на: комментарий от Sadler

отдельно хранимые заголовки и реализация классов, активное использование препроцессора

тяжелое наследие говносишечки, а препроцессор в С++, кстати, нужен существенно меньше чем в С.

Begemoth ★★★★★
()
Последнее исправление: Begemoth (всего исправлений: 1)
Ответ на: комментарий от cvs-255

Вполне возможно и прямо в описании класса реализовывать.

А для шаблонов это основной способ.

Begemoth ★★★★★
()

Почему в Develompent столько тем «Как сделать в С++ что-то?», а внутри тупняк вроде:

Как узнать длину переменного масива(1аргумент терминала)

или такой:

набираю в консоли >$ gcc 1.cpp

пишет: gcc: error trying to exec 'cc1plus': execvp: No such file or directory

ЧЯДНТ?

Ответь нам, qwertyqw зачем ты это делаешь??????
Ответьте модераторы, зачем ОНО в Develompent??????

comp00 ★★★★
()
Ответ на: комментарий от comp00

Да, согласен, что вопросы новичка.
почему в Develompent - незнаю, может быть лучше в General?

qwertyqw
()
Ответ на: комментарий от waker

а ты небось из принципа даже #include не юзаешь?

Зачем сразу в крайности? Конечно же я использую препроцессор, просто по хорошему он во многих случаях совсем не обязателен.

m0rph ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.