Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
Yashman
1 / 3 / 4
Регистрация: 02.07.2011
Сообщений: 90
1

Программа с заголовочным файлом (с++)

15.08.2011, 20:58. Просмотров 923. Ответов 8
Метки нет (Все метки)

Всем Привет! Недавно стал изучать использование заголовочных файлов в с++ и столкнулся с проблеммой. Написал вот такую программу (она бессмысленая, просто у меня в нормальной программе такаяже фигня) из двух файлов, но компиль ругается. В чем я ошибся и как исправить?
Вот заголовочный файл:
C++
1
2
3
//файл attach.h
int a, b;
a = b = 0;
Вот главный файл:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
//файл main.cpp
#include "attach.h"
#include <iostream>
 
using namespace std;
 
int main(int argc, char *argv[])
{
    extern int a, b;
    cout <<  a << ", " << b;
    system("PAUSE > nul");
    return EXIT_SUCCESS;
}
Вот, что компиль пишет:
Строка......Сообщение
1..............In file included from main.cpp
2..............expected constructor, destructor, or type conversion before '=' token
2..............expected `,' or `;' before '=' token
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.08.2011, 20:58
Ответы с готовыми решениями:

Подскажите с заголовочным файлом
есть заголовочный фаил header.h: #include&lt;iostream.h&gt; void fn_void(int m) {...

Компиляция с заголовочным файлом
Стыдно спрашивать но все же. Никак не пойму как компилировать несколько файлов...

Работа с заголовочным файлом
Здравствуйте! В папке лежит несколько файлов: main.cpp, dualsimplex.h,...

Cоздание проги с заголовочным файлом
У меня не получается создать простейшую программку с заголовочным файлом. Я...

Невозможно открыть include с заголовочным файлом
Подскажите решение проблемы что только не пробовал не помогает fatal error...

8
zuq
95 / 95 / 5
Регистрация: 10.04.2011
Сообщений: 256
15.08.2011, 21:38 2
а если
C++
1
int a = 0, b = 0;
0
Ree.exe
56 / 56 / 16
Регистрация: 01.08.2011
Сообщений: 141
15.08.2011, 21:41 3
Цитата Сообщение от Yashman Посмотреть сообщение
//файл attach.h
C++
1
int b=0, a=0;
Попробуй так.
0
Yashman
1 / 3 / 4
Регистрация: 02.07.2011
Сообщений: 90
15.08.2011, 21:48  [ТС] 4
тогда компиль пишет
[Linker error] undefined reference to `a'
[Linker error] undefined reference to `a'
[Linker error] undefined reference to `b'
[Linker error] undefined reference to `b'
0
zuq
95 / 95 / 5
Регистрация: 10.04.2011
Сообщений: 256
15.08.2011, 22:03 5
Напиши в главном файле
C++
1
2
extern a;
extern b;
1
Yashman
1 / 3 / 4
Регистрация: 02.07.2011
Сообщений: 90
15.08.2011, 22:28  [ТС] 6
Спасибо zuq, сам я не додумался Правда, тогда надо писать не
C++
1
2
extern a;
extern b;
а вместе с типом:
C++
1
2
extern int a;
extern int b;
Кстати, тогда можно в заголовочном файле писать просто
C++
1
int a = b = 0;
0
accept
4833 / 3255 / 455
Регистрация: 10.12.2008
Сообщений: 10,569
16.08.2011, 10:19 7
в заголовочном файле пишутся только объявления
определения должны быть в еденице трансляции
определение там, где происходит выделение памяти

C++
1
2
3
//файл attach.h
int a, b;
a = b = 0;
замени

C++
1
2
//файл attach.cpp
int a, b;
C++
1
2
//файл attach.h
extern int a, b;
C++
1
2
//файл main.cpp
#include "attach.h"
файлы .cpp (еденицы трансляции) должны быть добавлены в проект (чтобы компилировались)
1
Yashman
1 / 3 / 4
Регистрация: 02.07.2011
Сообщений: 90
16.08.2011, 15:39  [ТС] 8
Огромное спасибо, accept, это очень помогло
0
accept
17.08.2011, 01:37     Программа с заголовочным файлом (с++)
  #9

Не по теме:

Цитата Сообщение от accept
определения должны быть в еденице трансляции
файлы .cpp (еденицы трансляции) должны быть
единицы

1
17.08.2011, 01:37
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.08.2011, 01:37
Привет! Вот еще темы с ответами:

Программа по работе с файлом работает некорректно
Помогите найти где ошибка,программа работает со строками из файла, компилятор...

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

Программа неадекватно реагирует на функции работы с файлом..
Я написал небольшую простенькую программку, читающую что-то из файла, и...


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

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

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