Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вопросник новичка 
:(
    Опции темы
DreLaZ
Дата 12.10.2007, 19:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 26.9.2007

Репутация: 1
Всего: 1



Большое спасибо!!! Всё получилось.
Цитата

Это что?visual studio 1.52

вообще-то microsoft visual c++ 1.52 (cкачал с инета)
Цитата

Плохая книга, раз не сказали, что нужно подключать ещё и ostream, а то что писать return 0 в main нафик не нужно 

Книга "с++ за 21 день" (для новичка думаю как раз, потом можно посмотреть что-то другое).
Зачем подключать ostream? Согласен, что и return там не нужен.
зы что еще изменилось из стандартов не считая .h и std?

Добавлено через 1 минуту и 10 секунд
Цитата(Dronchik @ 12.10.2007,  18:55)
А на Visual C++ 6 всё это пишется так
Код

#include <iostream.h> 

int main()
{
cout << "Hello!!!!!"; 
return 0;
}


Оно и на Borland c++ 4.5 также пишется.
PM MAIL   Вверх
archimed7592
Дата 12.10.2007, 19:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 58
Всего: 93



Цитата(DreLaZ @  12.10.2007,  19:02 Найти цитируемый пост)
вообще-то microsoft visual c++ 1.52 (cкачал с инета)

Покажи скриншот, а? А лучше ещё и ссылку дай на это чудо smile.

Цитата(DreLaZ @  12.10.2007,  19:02 Найти цитируемый пост)
Зачем подключать ostream?

Да я шутю smile. Ещё не сделали такой компилятор, который при отсутствии ostream ругнулся бы, а когда будут создавать новый супер-пупер компилятор, обязательно задумаются, что есть туева хуча книг в которых описано немного иначе и, самое главное, туева хуча программ, которые просто перестанут компилироваться, так что сделают так, чтобы работало и с iostream(на самом деле, чтобы сделать, чтобы не работало придётся немало потрудиться smile).

Ну фишка в том, что, когда ты пишешь std::cout << blablabla; ты по сути вызываешь std::cout::operator<<(blablabla); или std::operator<<(std::cout, blablabla); (в зависимости от типа blablabla... кстати могут быть и ещё более извращённые случаи).
Так вот, Стандарт оговаривает то, что iostream содержит объявления объекта cout, но не гарантирует того, что этот заголовочный содержит определение класса basic_ostream(экземпляром которого cout и является). Т.о. может сработать ADL и вызваться не тот оператор или вообще может не скомпилировать. Под "может" я подразумеваю имеет право по Стандарту - в реальности всё конечно работает и без ostream.


Цитата(DreLaZ @  12.10.2007,  19:02 Найти цитируемый пост)
Согласен, что и return там не нужен.

А откуда такая согласность smile ?
Ф-ция, возвращающая не void(в данном случае int) должна что-нибудь возвращать, разве нет? smile 
Просто Стандарт явно оговаривает, что, если main ничего не возвращает явно, то компилятор должен неявно вставить туда return 0; smile

Цитата(DreLaZ @  12.10.2007,  19:02 Найти цитируемый пост)
зы что еще изменилось из стандартов не считая .h и std?

Ну, учитывая то, что на момент появления BC-4.5 Стандарта не было вообще, то очень много smile.
Из очень заметного - default int и templates. А так, скорее всего ещё *_cast, mutable, и много чего другого.
Очень многие изменения в тонкостях, которые так просто не заметишь...


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
DreLaZ
Дата 12.10.2007, 21:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 26.9.2007

Репутация: 1
Всего: 1



Цитата

Покажи скриншот, а? А лучше ещё и ссылку дай на это чудо

вот это ЧУДО
PM MAIL   Вверх
archimed7592
Дата 12.10.2007, 21:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 58
Всего: 93



Да уж... Раритет smile.


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
Rickert
Дата 13.10.2007, 06:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ситхи не пройдут!
****


Профиль
Группа: Комодератор
Сообщений: 3356
Регистрация: 11.7.2006
Где: Лакрима

Репутация: 0
Всего: 52



archimed7592
Насколько мне известно из книги "С++: стандартная библиотека" от Николая Джосьютиса:
по стандарту принято, чтобы main Описывался след. образом:
Код

int main(int argc, char** argv)
{
  return 0;
}

При успешном завершении - 0.



--------------------
Ни что не внушает сна крепче, чем день приисполненный трудов!
PM MAIL WWW Skype GTalk   Вверх
tdebugger
Дата 13.10.2007, 07:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 117
Регистрация: 20.1.2007

Репутация: нет
Всего: 4



Хочу предупредить о такой специфической ошибке - если в среде VS создаете визардом консольный проект, то #include <iostrem> надо прописывать в файле stdafx.h, а не там, где main...  
--------------------
ТЕХНОЛОГИЯ "JAVA"  НЕ ПРЕДНАЗНАЧЕНА ДЛЯ УПРАВЛЕНИЯ ЯДЕРНЫМИ УСТАНОВКАМИWindows98 License.txt
PM MAIL MSN   Вверх
archimed7592
Дата 13.10.2007, 09:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 58
Всего: 93



tdebugger, не стоит предупреждать о том, чего толком не понимаешь smile.
Если отключены precompiled headers(потом я и показывал на примере empty project), то stdafx.* можно вообще удалить.
Если включены, то единственное условие, которое накладывается на модули трансляции - это, чтобы первым include'ом был stdafx.h - в остальном модули ничем не отличаются.

Rickert, эхх... Если бы ещё все книги правильно писали...

Цитата(IS-3.6.1/2 Main function)
An implementation shall not predefine the main function. This function shall not be overloaded. It shall
have a return type of type int, but otherwise its type is implementation-defined. All implementations
shall allow both of the following definitions of main:

Код

int main() { /* ... */ }

and
Код

int main(int argc, char* argv[]) { /* ... */ }


Цитата(IS-3.6.1/5 Main function)

A return statement in main has the effect of leaving the main function (destroying any objects with automatic
storage duration) and calling exit with the return value as the argument. If control reaches the end
of main without encountering a return statement, the effect is that of executing

Код

return 0;




--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
Rickert
Дата 13.10.2007, 09:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ситхи не пройдут!
****


Профиль
Группа: Комодератор
Сообщений: 3356
Регистрация: 11.7.2006
Где: Лакрима

Репутация: 0
Всего: 52



Ну и где правда?


--------------------
Ни что не внушает сна крепче, чем день приисполненный трудов!
PM MAIL WWW Skype GTalk   Вверх
iura
Дата 13.10.2007, 11:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 13.10.2007

Репутация: нет
Всего: нет



как получу доступ к IDE
PM MAIL   Вверх
tdebugger
Дата 13.10.2007, 18:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 117
Регистрация: 20.1.2007

Репутация: нет
Всего: 4



Цитата(archimed7592 @  12.10.2007,  08:56 Найти цитируемый пост)
Имеет право не существовать. Это интимное дело конкретной реализации

Согласен.

Цитата(archimed7592 @  12.10.2007,  08:56 Найти цитируемый пост)
А зачем ? Ты примерно представляешь, как устроен компилятор?

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

Цитата(archimed7592 @  13.10.2007,  09:07 Найти цитируемый пост)
tdebugger, не стоит предупреждать о том, чего толком не понимаешь

Ты знаешь - молодец, а некоторые досадные ошибки делают...
--------------------
ТЕХНОЛОГИЯ "JAVA"  НЕ ПРЕДНАЗНАЧЕНА ДЛЯ УПРАВЛЕНИЯ ЯДЕРНЫМИ УСТАНОВКАМИWindows98 License.txt
PM MAIL MSN   Вверх
archimed7592
Дата 13.10.2007, 19:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 58
Всего: 93



Цитата(Rickert @  13.10.2007,  09:37 Найти цитируемый пост)
Ну и где правда? 

С трёх раз угадаешь? Ну ладно, приведу аналогию:
Есть УК-РФ в котором сказано за убийство человека светит X лет. Есть недописатель недолитературы, который утверждает что за убийство человека в Росии сажают на Y лет. Кто прав?

Скорее всего, как всегда выдрано из контекста и неправильно понято тобой и писатель тут не при чём(Джосатиса не читал, но слышал только хорошие отзывы).


Цитата(iura @  13.10.2007,  11:32 Найти цитируемый пост)
как получу доступ к IDE 

smile.
Ребят, особенно новички: Стандарт ISO/IEC 14882:2003 - это закон. Любой компилятор("IDE") - это всего лишь реализация, которая не всегда соответствует Стандарту и не всегда результат его работы обязан работать "правильно"(j = (i++) + (i++); яркий тому пример).


Цитата(tdebugger @  13.10.2007,  18:41 Найти цитируемый пост)
Да, но это здесь причем. Не говоря  уж о том, что с инклудными файлами работает препроцессор...

Угу, но по стандарту компиляция модуля трансляции - это монолитный процесс, а то что конкретные реализации разбивают его на этапы(препроцессинг, компиляция, сборка) - это, опять же, их интимное дело.
Я имел ввиду то, что делать iostream(и всё стандартную библиотеку) абстракцией - это дороже, чем просто реализовать её "с нуля"(как будто в компиляторе её нет) в неабстрактных файлах, которые "СУЩЕСТВУЮТ", тем более, что Стандарт предоставляет для этого все возможности.


Цитата(tdebugger @  13.10.2007,  18:41 Найти цитируемый пост)
Ты знаешь - молодец, а некоторые досадные ошибки делают... 

Я тебе о том, что совет твой не правильный. Общий совет выглядит так: любой модуль трансляции должен начинаться с #include "stdafx.h", а то что лично ты предпочитаешь запихивать все заголовочные файлы в stdafx(и не писать их в самих модулях) - это плохо, ибо stdafx нужен для precompiled headers, а никак не для всеобщего сборища зависимостей. Не надо учить новичков плохому стилю smile.


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
Rickert
Дата 14.10.2007, 06:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ситхи не пройдут!
****


Профиль
Группа: Комодератор
Сообщений: 3356
Регистрация: 11.7.2006
Где: Лакрима

Репутация: 0
Всего: 52



archimed7592, сам суди:
user posted image


--------------------
Ни что не внушает сна крепче, чем день приисполненный трудов!
PM MAIL WWW Skype GTalk   Вверх
archimed7592
Дата 14.10.2007, 07:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 58
Всего: 93



Rickert, ну и сравни теперь это с тем что ты сказал
Цитата(Rickert @  13.10.2007,  06:05 Найти цитируемый пост)
archimed7592
Насколько мне известно из книги "С++: стандартная библиотека" от Николая Джосьютиса:
по стандарту принято, чтобы main Описывался след. образом:
    
int main(int argc, char** argv)
{
  return 0;
}

При успешном завершении - 0.

Я ничего общего не вижу smile. Наоборот, как и предполагал - Джосатис, в лучших традициях, описал этот вопрос наиболее полно...


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
MAKCim
Дата 14.10.2007, 09:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 52
Всего: 207



Цитата(archimed7592 @  13.10.2007,  19:15 Найти цитируемый пост)
j = (i++) + (i++)

если бы стандартизовать порядок вычисления (например слева направо)
то никакой неоднозначности бы не было
1) temp1 = i
2) i = i + 1
3) temp1 = temp1 + i
4) i = i + 1
5) j = temp1
таким образом однозначно раскручивается любой сложности выражение
Цитата

i += ++i - i-- + i++

разворачиваем в 
Цитата

i = i + ++i - i-- + i++

1) temp1 = i
2) i = i + 1
3) temp1 = temp1 + i
4) temp1 = temp1 - i
5) i = i - 1
6) temp1 = temp1 + i
7) i = i + 1
8) i = temp1
Цитата

i *= (i - (-i + ++i - --i) * i) / ++i

разворачивается в
i = i * ((i - (-i + ++i - --i) * i) / ++i)
1) temp1 = i
2) temp2 = i
3) temp3 = -i
4) i = i + 1
5) temp3 = temp3 + i
6) i = i - 1
7) temp3 = temp3 - i
8) temp3 = temp3 * i
9) temp2 = temp2 - temp3
10) i = i + 1
11) temp2 = temp2 / i
12) temp1 = temp1 * temp2
13) i = temp1

Это сообщение отредактировал(а) MAKCim - 14.10.2007, 10:06


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
archimed7592
Дата 14.10.2007, 10:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 58
Всего: 93



MAKCim, как только договорюсь с ГОСТ'ом о том, чтобы принимать участие в работе WG21, так сразу займусь этим вопросом smile.
Нет, на самом деле, мы же не стандартизируем ничего - есть Стандарт, мы и компилятор ему пытаемся следовать(для того он и нужен - чтобы все были максимально довольны).

И напоследок: ты не задумывался, почему этот порядок не стандартизирован smile?


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1274 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.