Re[8]: вопрос
От: igna Россия  
Дата: 19.05.11 05:00
Оценка:
Здравствуйте, esil, Вы писали:

E>Чем константа отличается от "объекта только для чтения"? Я знаю только одно отличие для глобальных целоцисленных констант — их можно использовать в качестве размера массива, и то это появилось не сразу.


5.19 Constant expressions [expr.const]

1 In several places, C + + requires expressions that evaluate to an integral or enumeration constant: as array
bounds (8.3.4, 5.3.4), as case expressions (6.4.2), as bit-field lengths (9.6), as enumerator initializers (7.2),
as static member initializers (9.4.2), and as integral or enumeration non-type template arguments (14.3).


И возвращаясь к "особенным особенностям C++", где логика в нижеследующем примере?:

const int a_size = 10;
int a[a_size]; // OK

const int b_size[3] = { 10, 20, 30 };
int b0[b_size[0]]; // error: expression must have a constant value
Re[9]: вопрос
От: esil  
Дата: 19.05.11 09:16
Оценка:
Здравствуйте, igna, Вы писали:

E>>Чем константа отличается от "объекта только для чтения"? Я знаю только одно отличие для глобальных целоцисленных констант — их можно использовать в качестве размера массива, и то это появилось не сразу.


I>

I>5.19 Constant expressions [expr.const]

I>1 In several places, C + + requires expressions that evaluate to an integral or enumeration constant: as array
I>bounds (8.3.4, 5.3.4), as case expressions (6.4.2), as bit-field lengths (9.6), as enumerator initializers (7.2),
I>as static member initializers (9.4.2), and as integral or enumeration non-type template arguments (14.3).


И зачем вы сейчас этот абзац привели? Constant expression — это по вашему константа? Ну например, "4.5f" — это не constant expression. По-вашему, это не константа? Давайте тогда определимся, что вы считаете константой.


I>И возвращаясь к "особенным особенностям C++", где логика в нижеследующем примере?:


I>
I>const int a_size = 10;
I>int a[a_size]; // OK

I>const int b_size[3] = { 10, 20, 30 };
I>int b0[b_size[0]]; // error: expression must have a constant value
I>


Логика в том, что единственное отношение слова const к Constant expression — это то, что переменная целочисленного типа, объявленная с квалификатором const и инициализированная при объявлении, является constant expression. По сути это единственное исключение, сделанное для удобства. Можете не использовать. Есть отдельная штука для констант — enum называется, пользуйтесь им.
Re[10]: вопрос
От: igna Россия  
Дата: 19.05.11 09:47
Оценка:
Здравствуйте, esil, Вы писали:

E>По сути это единственное исключение, сделанное для удобства.


Таких единственных исключений в C++ столько, сколько в C, Java, C# и еще паре-тройке популярных языков вместе взятых.
Re[10]: вопрос
От: igna Россия  
Дата: 19.05.11 09:53
Оценка:
Здравствуйте, esil, Вы писали:

E>И зачем вы сейчас этот абзац привели?


Ну ты же знал "только одно отличие для глобальных целоцисленных констант — их можно использовать в качестве размера массива", теперь вот будешь знать еще несколько.
Re[11]: вопрос
От: esil  
Дата: 19.05.11 10:51
Оценка:
Здравствуйте, igna, Вы писали:

I>Здравствуйте, esil, Вы писали:


E>>И зачем вы сейчас этот абзац привели?


I>Ну ты же знал "только одно отличие для глобальных целоцисленных констант — их можно использовать в качестве размера массива", теперь вот будешь знать еще несколько.


О да, каждый мнит себя учителем.
Re[4]: вопрос
От: Mamut Швеция http://dmitriid.com
Дата: 19.05.11 11:14
Оценка: +1
НС>> Зачем в кадах С++?

S>Зачем в кадах GUI?


Это не отвечает на вопрос


dmitriid.comGitHubLinkedIn
Re[12]: вопрос
От: igna Россия  
Дата: 20.05.11 08:38
Оценка:
Здравствуйте, esil, Вы писали:

E>О да, каждый мнит себя учителем.


Извини, если обидел. Думал, ты так спрашиваешь.
Re[10]: вопрос
От: B0FEE664  
Дата: 20.05.11 15:11
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>Здравствуйте, B0FEE664, Вы писали:


НС>>>Тем, что заради наследования исключительно реализации, ты занаследовал публично еще и два контракта. Результат — бардак в контрактах, что куда больнее чем бардак в реализациях.

BFE>>А в чём бардак ?
НС>Лишние ненужные сущности.

Какие сущности тут лишние ?

BFE>> Прямоугольник может быть представим как точка или как размер.

НС>Логически — нет.
А что это значит ? В каком смысле он не представим ? В геометрическом ?
Мне тут кажется всё логичным. Захотели подвинуть прямоугольник — изменили точку, захотели изменить размер — меняем size. Что не логично?

BFE>> Нарушение каких контрактов вы предполагаете ?

НС>Где я писал про нарушения? Я писал про бардак.

Ну и в чём он состоит ?
И каждый день — без права на ошибку...
Re[2]: вопрос
От: alzt  
Дата: 20.05.11 16:01
Оценка: +1
Здравствуйте, LaptevVV, Вы писали:

А>>А стоит ли сейчас вообще начинать изучать с++? Или лучше браться сразу за другие языки типа c#, java, python?

LVV>TЕсли ть профи — нужно.
LVV>С# — это продукт фирмы, Java — это продукт фирмы. Гикнутся фирмы — где будут эти языки? Даже если фирма не гикнется, язык может выйти из употребления по другим причинам (пример — PL-1 фирмы IBM).
LVV>А С++ — он как Фортран... Он — уже бессмертен!

Язык С++ очень сложный. Причём сложный не только для изучающих, но и для пишущих компиляторы. Многие вещи в нём как будто специально созданы, чтобы тяжелее было реализовать нормальный компилятор.
Поэтому порог вхождения в их круг очень высок. Создать нормальный компилятор сложно, а чтобы он ещё был популярен, приносил прибыль, выдавал хороший код ещё тяжелее. Поэтому не так много осталось игроков, которые могут осилить тотже C++0x.
Re[3]: вопрос
От: alzt  
Дата: 20.05.11 16:05
Оценка:
Здравствуйте, Sheridan, Вы писали:

LVV>> Мои студенты говорят: Кто продрался через С++, для того все перечисленные языки — семечки...

S>Неужели настолько сложный?

очень сложный язык. Причём это понимаешь не сразу. Только с опытом приходит понимание, что пишешь ты на нём не очень. Я когда студентом был, то думал, что хорошо язык знаю. Чем больше его осваивал тем сильнее сомневался.

Сейчас моё мнение — лучше не учить его. шарп или ява намного проще.
Если хочется архитектуру пощупать можно и ассемблер какой-нибудь изучить, или на Си немного пописать.

Но это в контексте этой ветки. Для многих вопроса учить или нет С++ не стоит. Они точно знают, что он им нужен.
Re[11]: вопрос
От: Ночной Смотрящий Россия  
Дата: 21.05.11 00:24
Оценка:
Здравствуйте, B0FEE664, Вы писали:

BFE>Какие сущности тут лишние ?


Пошли по кругу.

НС>>Логически — нет.

BFE>А что это значит ?

То и значит — бессмысленноя с точки зрения решаемых задач отношение наследования.

BFE> В каком смысле он не представим ? В геометрическом ?

BFE>Мне тут кажется всё логичным. Захотели подвинуть прямоугольник — изменили точку, захотели изменить размер — меняем size. Что не логично?

Мда, против такой логики я бессилен.

BFE>Ну и в чём он состоит ?


И опять пошли по кругу.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.