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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.82
Winhttp
60 / 60 / 0
Регистрация: 05.01.2013
Сообщений: 235
#1

тестовая программа не компилируется = "error: 'mainfunc' was not declared in this scope|" - C++

07.02.2013, 05:21. Просмотров 1389. Ответов 10
Метки нет (Все метки)

Решил ознакомится с Си, пишу простой код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <windows.h>
#include <stdio.h>
 
using namespace std;
 
int main()
{
    mainfunc();
    system("pause");
}
void mainfunc(void){
    printf("mainfunc ok");
}
прогграмма не компилируется подскажите, как правильно вызывать функции
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.02.2013, 05:21     тестовая программа не компилируется = "error: 'mainfunc' was not declared in this scope|"
Посмотрите здесь:

Не работает функция itoa(): "was not declared in this scope" - C++
#include &lt;iostream&gt; #include &lt;cmath&gt; #include &lt;iomanip&gt; #include &lt;cstdlib&gt; в ошибке написано что itoa() не объявлена (itoa()...

Как устранить ошибку "Was not declared in this scope" - C++
Пытаюсь разобраться в с++. Не могу понять, как обойти ошибку Was not declared in this scope. В паскале, бейсике такого не встречал. В...

Функция strcmp "was not declared in this scope" - C++
Написала программу, но выдает ошибку. Строка помечена комментарием. Помогите пожалуйста, не могу понять в чем ошиблась. Библиотеку...

Ошибка "'price' was not declared in this scope" - C++
Здравствуйте, не подскажете где ошибка в программе? С.Липпман, упражнение 7.7. выдает ошибку error: 'price' was not declared in this...

"num" was not declared in this scope - C++
Решил создать маленькую консольную програмку для закрепления знаний, которые получил при просмотре видеоуроков, но выдает такую ошибку &quot;...

Ошибка "not declared in this scope" - C++
Пишет что ошибка в 7, 9 и 12 строчках, в каждой из которых переменные a, b,c соответственно not declared in this scope #include &lt;iostream&gt; ...

Не компилируется приложение: 'system' was not declared in this scope - C++
Привет всем, теперь на форуме на одного глупого первокурсника больше) Немогу откомпилировать, хотя в универе тотже код работает...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
0x10
2459 / 1631 / 238
Регистрация: 24.11.2012
Сообщений: 4,012
07.02.2013, 06:22     тестовая программа не компилируется = "error: 'mainfunc' was not declared in this scope|" #2
Winhttp, перед вызовом функция должна быть объявлена:
C++
1
2
3
4
5
6
7
8
9
// ...
void mainfunc(); //<
 
int main()
{
    mainfunc();
    // ...
}
// ...
Winhttp
60 / 60 / 0
Регистрация: 05.01.2013
Сообщений: 235
07.02.2013, 08:14  [ТС]     тестовая программа не компилируется = "error: 'mainfunc' was not declared in this scope|" #3
0x10, а без обьявления никак? это в заголовочном файле чтоли нужно обьявить и подключить его соответственно?
0x10
2459 / 1631 / 238
Регистрация: 24.11.2012
Сообщений: 4,012
07.02.2013, 08:23     тестовая программа не компилируется = "error: 'mainfunc' was not declared in this scope|" #4
Цитата Сообщение от Winhttp Посмотреть сообщение
это в заголовочном файле чтоли нужно обьявить и подключить его соответственно?
Похоже, я перегрузил свой пример мусором, если возник такой вопрос. Еще раз:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <windows.h>
#include <stdio.h>
 
using namespace std;
 
// !!!
void mainfunc();
 
int main()
{
    mainfunc();
    system("pause");
    return 0;
}
 
void mainfunc()
{
    printf("mainfunc ok");
}
Winhttp
60 / 60 / 0
Регистрация: 05.01.2013
Сообщений: 235
07.02.2013, 08:36  [ТС]     тестовая программа не компилируется = "error: 'mainfunc' was not declared in this scope|" #5
0x10, не, я имел ввиду, что в заголовочном файле можно обьявлять и его просто подключать .
#include вставляет же код файла указанного
0x10
2459 / 1631 / 238
Регистрация: 24.11.2012
Сообщений: 4,012
07.02.2013, 08:45     тестовая программа не компилируется = "error: 'mainfunc' was not declared in this scope|" #6
Цитата Сообщение от Winhttp Посмотреть сообщение
0x10, не, я имел ввиду, что в заголовочном файле можно обьявлять и его просто подключать .
#include вставляет же код файла указанного
Ага.
Winhttp
60 / 60 / 0
Регистрация: 05.01.2013
Сообщений: 235
07.02.2013, 08:58  [ТС]     тестовая программа не компилируется = "error: 'mainfunc' was not declared in this scope|" #7
вот что написал
main.cpp:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <windows.h>
 
using namespace std;
 
#include ".\main.h"
int main()
{
    string cac="hello world :)";
    mainfunc(&cac);
    system("pause");
}
void mainfunc(string *s){
    cout<<*s<<endl;
}
main.h:
C++
1
void mainfunc(string *s);
Хотел бы спросить - правильно ли все делаю? или как то по другому принято?
0x10
2459 / 1631 / 238
Регистрация: 24.11.2012
Сообщений: 4,012
07.02.2013, 09:12     тестовая программа не компилируется = "error: 'mainfunc' was not declared in this scope|" #8
Давайте по порядку. Раз уж начали разбирать, то напишу все, на чем останавливается взгляд.

1.
C++
1
using namespace std;
Некоторые (или многие?) соглашения запрещают использовать директивы using.

2.
C++
1
#include ".\main.h"
Слеш не в ту сторону. По стандарту - /. А в данном случае ./ вообще не нужны.

3.
C++
1
mainfunc(&cac);
Изврат. Давайте передавать по константной ссылке.

4.
C++
1
2
system("pause");
}
Функция int main() должна возвращать значение.

5. main.h:
C++
1
void mainfunc(string *s);
Про константную ссылку уже сказал. И для заголовочного файла одного объявления маловато будет. Читаем сюда http://ru.wikipedia.org/wiki/Include_guard
Winhttp
60 / 60 / 0
Регистрация: 05.01.2013
Сообщений: 235
07.02.2013, 09:54  [ТС]     тестовая программа не компилируется = "error: 'mainfunc' was not declared in this scope|" #9
зврат. Давайте передавать по константной ссылке.
я просто тренируюсь смотрел лекцию об указателях, вот и написал такое. до константных ссылок пока не дошел.
Функция int main() должна возвращать значение.
да, забыл return 0 прописать в конце. но это не страшно, препод в лекции говорил, что это нужно лишь для батников, когда запускаешь через них программу саму, чтобы отследить что программа отработала.
0x10
2459 / 1631 / 238
Регистрация: 24.11.2012
Сообщений: 4,012
07.02.2013, 10:01     тестовая программа не компилируется = "error: 'mainfunc' was not declared in this scope|" #10
Буду ссылаться на Страуструпа http://stroustrup.com/bs_faq2.html#void-main


Цитата Сообщение от Winhttp Посмотреть сообщение
препод в лекции говорил, что это нужно лишь для батников
Частный случай. Я могу и из своей программы запустить процесс и затем проверить его код завершения.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.02.2013, 10:28     тестовая программа не компилируется = "error: 'mainfunc' was not declared in this scope|"
Еще ссылки по теме:

[Error] 'If' was not declared in this scope - C++
Недавно начал изучать Си++. Написал программу почти так же, как в примере из книги. #include &lt;iostream&gt; #include &lt;cstdlib&gt; ...

[Error] 'm' was not declared in this scope - C++
почему программа не видит m,h??? пишет ошибку 'm' was not declared in this scope 'h' was not declared in this scope #include...

error: . was not declared in this scope - C++
Здравстуйте! Недавно начал изучать С++. Нужно написать программу вычисления периметра треугольника через функцию. В коде возникла ошибка:...

error: ‘cout’ was not declared in this scope - C++
Начал осваивать C++ сегодня и уже столкнулся с проблемой :( компилятор показывает ошибку: error: ‘cout’ was not declared in this scope ...

Error: 'GET_X_LPARAM' was not declared in this scope| - C++
http://vsokovikov.narod.ru/New_MSDN_API/Window/mac_get_x_lparam.htm. Где она объявлена?


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

Или воспользуйтесь поиском по форуму:
Schizorb
509 / 461 / 16
Регистрация: 07.04.2012
Сообщений: 865
Записей в блоге: 1
Завершенные тесты: 1
07.02.2013, 10:28     тестовая программа не компилируется = "error: 'mainfunc' was not declared in this scope|" #11
Цитата Сообщение от 0x10 Посмотреть сообщение
Функция int main() должна возвращать значение.
Цитата Сообщение от 0x10 Посмотреть сообщение
Буду ссылаться на Страуструпа
Как раз в приведенной ссылке Страуструп и говорит, что для main явный return необязателен, по умолчанию будет возвращен 0.
Yandex
Объявления
07.02.2013, 10:28     тестовая программа не компилируется = "error: 'mainfunc' was not declared in this scope|"
Ответ Создать тему
Опции темы

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