Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
maks_b1
 Аватар для maks_b1
1 / 1 / 0
Регистрация: 26.11.2011
Сообщений: 29
#1

перегруженная main - C++

03.02.2012, 13:04. Просмотров 568. Ответов 7
Метки нет (Все метки)

скажите пожалуйста, а можно вообще перегружать main, и как это сделать (если возможно)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
go
Эксперт C++
3584 / 1364 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
03.02.2012, 13:08     перегруженная main #2
Цитата Сообщение от maks_b1 Посмотреть сообщение
скажите пожалуйста, а можно вообще перегружать main,
Вопрос зачем? В стандарте описано две функции main.
ValeryLaptev
Эксперт С++
1016 / 795 / 48
Регистрация: 30.04.2011
Сообщений: 1,614
03.02.2012, 13:10     перегруженная main #3
Описано два формата?
Ибо функция main в программе должна быть одна.
В старых системах вроде Турбо С++ можно было вызывать ее рекурсивно. Но в настоящее время, насколько помню - это тоже запретили.
-=ЮрА=-
Заблокирован
Автор FAQ
03.02.2012, 13:12     перегруженная main #4
Цитата Сообщение от maks_b1 Посмотреть сообщение
скажите пожалуйста, а можно вообще перегружать main, и как это сделать (если возможно)
- что имеется в виду???На сколько помню перегрузка main запрещена, в Си можно использовать рекурсию main но нерекомендовано...
go
Эксперт C++
3584 / 1364 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
03.02.2012, 13:13     перегруженная main #5
Цитата Сообщение от ValeryLaptev Посмотреть сообщение
Описано два формата?
Да. Я это имел ввиду.
int main() { /* ... */ }
and int main(int argc, char* argv[]) { /* ... */ }
ForEveR
Модератор
Эксперт С++
 Аватар для ForEveR
7958 / 4720 / 319
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
03.02.2012, 13:15     перегруженная main #6
ValeryLaptev,
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
 
int main()
{
   static int count = 0;
   if (count != 15)
   {
      std::cout << "Recursive call number: " << count << std::endl;
      ++count;
      main();
   }
}
Код
forever@pterois:~/My_pro1/cpp_pro$ g++ -o new new.cpp -std=c++0x
forever@pterois:~/My_pro1/cpp_pro$ ./new 
Recursive call number: 0
Recursive call number: 1
Recursive call number: 2
Recursive call number: 3
Recursive call number: 4
Recursive call number: 5
Recursive call number: 6
Recursive call number: 7
Recursive call number: 8
Recursive call number: 9
Recursive call number: 10
Recursive call number: 11
Recursive call number: 12
Recursive call number: 13
Recursive call number: 14
-=ЮрА=-
Заблокирован
Автор FAQ
03.02.2012, 13:20     перегруженная main #7

Не по теме:

Цитата Сообщение от ValeryLaptev Посмотреть сообщение
Но в настоящее время, насколько помню - это тоже запретили.
- в Си можно в плюсах нет, однако практика показывает обратное...



Добавлено через 1 минуту

Не по теме:

Ха писал

Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
однако практика показывает обратное
и как раз ForEveR, подтвердил...

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.02.2012, 11:39     перегруженная main
Еще ссылки по теме:

Какой новые синтаксис: int main() VS. void main() C++
C++ Перегруженная функция
Какая разница между int main и void main? C++
Перегруженная операция индексации C++
C++ Перегруженная константная функция

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
ValeryLaptev
Эксперт С++
1016 / 795 / 48
Регистрация: 30.04.2011
Сообщений: 1,614
04.02.2012, 11:39     перегруженная main #8
Цитата Сообщение от ForEveR Посмотреть сообщение
ValeryLaptev,
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
 
int main()
{
   static int count = 0;
   if (count != 15)
   {
      std::cout << "Recursive call number: " << count << std::endl;
      ++count;
      main();
   }
}
Эт понятно. Однако в стандарте написано:
3 The function main shall not be used within a program.
Это пункт 3.6.1.
Однако с другой стороны:
It is implementation-defined whether a program in a freestanding environment is required to define a main function.
Yandex
Объявления
04.02.2012, 11:39     перегруженная main
Ответ Создать тему
Опции темы

Текущее время: 08:10. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru