19 / 19 / 2
Регистрация: 29.11.2009
Сообщений: 224
1

Слабо создать программу, которая много чего делает, а в main только return 0?

22.01.2010, 01:58. Показов 3044. Ответов 26
Метки нет (Все метки)

Пояснение:

Имеется некая функции
C++
1
Function() {}
Причем она может делать что угодно.
Кто-то знает, как запустить эту функцию НЕ из main?

Например:

C++
1
2
3
4
5
6
7
8
9
void Function() // Любая ф-ия, которая делает что угодно. (Пример)
{
    cout << "Succeed!\n";
}
 
int main()
{
    return 0;
}
(чё-то сделать, main() НЕ менять!)
Результат:
Bash
1
2
3
overpower8@Milla-home:~/Projects$ g++ Program.cpp -o Program
overpower8@Milla-home:~/Projects$ ./Program
Succeed!


Я знаю, как это сделать. Но знает ли кто-либо еще?
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.01.2010, 01:58
Ответы с готовыми решениями:

Создать программу, которая состоит из отдельных функций, вызываемых к методе main ()
Задана не пустая последовательность слов из латинских букв. Последним символом этой послидновности...

Почему в одних случаях пишут void main(), а в других случаях int main() {return 1;}
Препод мне доказывает, что void в main`е писать неправильно, а объяснить не может почему. Кто...

Создать программу, которая в символьной строке оставляет только те слова, в которых есть повторяющиеся символы
Помогите создать программу, которая в символьной строке оставляет только те слова, в которых есть...

Создать программу, которая удаляет последнюю букву во введенном имени, пока не останется только одна буква
Создать программу, которая удаляет последнюю букву во введенной имя, пока не останется только одна...

26
Maniac
Эксперт С++
1455 / 956 / 159
Регистрация: 02.01.2009
Сообщений: 2,816
Записей в блоге: 1
22.01.2010, 02:07 2
Цитата Сообщение от OVERPOWER8 Посмотреть сообщение
Я знаю, как это сделать. Но знает ли кто-либо еще?
Представь себе..
0
19 / 19 / 2
Регистрация: 29.11.2009
Сообщений: 224
22.01.2010, 02:08  [ТС] 3
>> ISergey

Так знаешь или нет? (не пиши решение, пусть другие тож подумают...)
0
576 / 570 / 65
Регистрация: 29.01.2009
Сообщений: 1,274
22.01.2010, 02:09 4
:)
C
1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h>
 
__attribute__ ((constructor))
static void fnc(void)
{
    printf("I can do it ;)\n");
}
 
int main(void)
{
    return 0;
}
0
19 / 19 / 2
Регистрация: 29.11.2009
Сообщений: 224
22.01.2010, 02:12  [ТС] 5
>> Gravity

А решение оригинальное. У меня немного другое, и, на мой взгляд, более простое.
0
576 / 570 / 65
Регистрация: 29.01.2009
Сообщений: 1,274
22.01.2010, 02:13 6
OVERPOWER8, ну ладно, убрал под cut
0
9714 / 2468 / 50
Регистрация: 06.03.2009
Сообщений: 8,500
22.01.2010, 02:15 7
Цитата Сообщение от OVERPOWER8 Посмотреть сообщение
Ну зачем решение-то писать?

Не по теме:

я вам загадку загадаю, кто знает не говорите.




Цитата Сообщение от OVERPOWER8 Посмотреть сообщение
У меня немного другое, и, на мой взгляд, более простое.
Может вам просто в разделе Обо всем создать свой фан клуб?
0
19 / 19 / 2
Регистрация: 29.11.2009
Сообщений: 224
22.01.2010, 02:22  [ТС] 8
Ну что? Есть какие-то мысли (это не относится к Gravity).
0
Maniac
Эксперт С++
1455 / 956 / 159
Регистрация: 02.01.2009
Сообщений: 2,816
Записей в блоге: 1
22.01.2010, 02:48 9
Цитата Сообщение от OVERPOWER8 Посмотреть сообщение
Ну что? Есть какие-то мысли
а мыслей то надо..
...
C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
 
class Employee{
public:
    Employee() { std::cout << "Hello\n"; }
} emp;
 
int main(){
    return 0;
}
http://codepad.org/XO4Q7MwB
0
19 / 19 / 2
Регистрация: 29.11.2009
Сообщений: 224
22.01.2010, 03:08  [ТС] 10
>> ISergey

Мое решение идентично с вашим. А вот предложенное товарищем Gravity - круче!
0
4200 / 1792 / 211
Регистрация: 24.11.2009
Сообщений: 27,563
22.01.2010, 06:29 11
Куда копать эту задачу
Надо подменить точку входа. То есть воткунуть стартовый адрес на другую функцию. Все эти конструкторы статических объектов, статик-функции - всё это из этой серии. В том же направлении можно найти и чтото ещё.
0
depict1
281 / 146 / 4
Регистрация: 11.07.2009
Сообщений: 606
22.01.2010, 11:17 12
Лучший ответ Сообщение было отмечено как решение

Решение

Цитата Сообщение от OVERPOWER8 Посмотреть сообщение
Я знаю, как это сделать. Но знает ли кто-либо еще?
я не знаю. какой в этом смысл?
***
кстати, а вы знаете, что операция сложения ассоциативна?
т.е. (а + б) + ц = а + (б + ц)
***
а вы знаете, что воробей не умеет ходить? он умеет только прыгать!
***
!!! записывайтесь в мой фан-клуб.
3
MCSD: APP BUILDER
8791 / 1069 / 104
Регистрация: 17.06.2006
Сообщений: 12,603
22.01.2010, 11:28 13
Лучший ответ Сообщение было отмечено как решение

Решение

Слабо создать программу, которая много чего делает, а в main только return 0?
Я знаю, как это сделать. Но знает ли кто-либо еще?


Выдержки из дневника юного программиста:

Сегодня читал книжку "Освой C++ за 1 час". В самом конце прочитал про глобальные объекты. Они оказывается еще и не-POD могут быть. Ну ващще крутизна. Интересно, знает ли об этом еще кто-нибудь кроме меня?
3
depict1
281 / 146 / 4
Регистрация: 11.07.2009
Сообщений: 606
22.01.2010, 12:03 14
я тут подумал, OVERPOWER8 ты перепутал личный блог с форумом.
заведи его себе и пиши в нём, какой ты умный
0
4200 / 1792 / 211
Регистрация: 24.11.2009
Сообщений: 27,563
22.01.2010, 12:08 15
А по-моему, он предложил размяться.
0
19 / 19 / 2
Регистрация: 29.11.2009
Сообщений: 224
22.01.2010, 12:17  [ТС] 16
>> taras atavin

Соврешенно верно. Я предложил размяться. А кому не интересно, попросил бы проигнорировать эту тему.
0
Evg
Эксперт CАвтор FAQ
21193 / 8209 / 633
Регистрация: 30.03.2009
Сообщений: 22,522
Записей в блоге: 30
22.01.2010, 12:30 17
Цитата Сообщение от OVERPOWER8 Посмотреть сообщение
Мое решение идентично с вашим. А вот предложенное товарищем Gravity - круче!
Предложение Gravity - это gnu-расширение, т.е. код, который, грубо говоря, кроме как на gcc работать не будет. Единственный ПЕРЕНОСИМЫЙ вариант - тот, который написал ISergey. Всё остальное - это зависит либо от компилятора, либо от ОС, либо от используемой библиотеки и т.д.
0
4200 / 1792 / 211
Регистрация: 24.11.2009
Сообщений: 27,563
22.01.2010, 12:34 18
Единственный? Я так не думаю. Разве нельзя покопаться в готовом исполняемом коде и подменить стартовый адрес в заголовке файла?
0
19 / 19 / 2
Регистрация: 29.11.2009
Сообщений: 224
22.01.2010, 12:45  [ТС] 19
>> Evg

Предложение Gravity - это gnu-расширение, т.е. код, который, грубо говоря, кроме как на gcc работать не будет.
А вот и не правда! У меня на G++ он идеально заработал!
0
576 / 570 / 65
Регистрация: 29.01.2009
Сообщений: 1,274
22.01.2010, 12:46 20
Цитата Сообщение от OVERPOWER8 Посмотреть сообщение
А вот и не правда! У меня на G++ он идеально заработал!
g++ это и есть команда GNU-компилятора.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.01.2010, 12:46

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Создать программу, которая подсчитывает количество чисел в тексте и выводит на екран все слова, состоящие только из латинских букв
Создать программу , которая подщитывает количество чисел в тексте (не цыфр, а именно чисел);...

Написать основную программу main, которая
Написать основную программу main, которая а) в режиме диалога вводит исходные данные Х,  и N -...

Как в main() создать указатель на функцию, которая находится в классе?
В этом примере как определить указатель на функцию F()? class A { public: bool F(int &amp;a, int...

Написать программу которая делает перестановки введенных симолов
Доброго всем времени суток. вот такая задачка. 4. Написать программу которая делает перестановки...

Написать программу, которая из обычного трека делает минус
Всем доброго времени суток! Проблема такая: нужно написать программу, которая из обычного трека...

Использование return в main
Если возвращаем 0 то это означает что прога норм завершилась, иначе значит были какие то ошибки,...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.