Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.63/16: Рейтинг темы: голосов - 16, средняя оценка - 4.63
0 / 0 / 0
Регистрация: 18.10.2010
Сообщений: 19

Работа с заголовочным файлом

21.05.2011, 01:13. Показов 3872. Ответов 25
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!
В папке лежит несколько файлов: main.cpp, dualsimplex.h, dualsimplex.cpp
Задача: в main.cpp создать объект класса 'DualSimplex' и вызвать функцию 'SetData'

main.cpp:
C++
1
2
3
4
5
6
7
8
9
10
11
#include "dualsimplex.h"
#include <iostream>
using namespace std;
 
int main ()
{
    DualSimplex problem;
    problem.SetData ();
        
    return 0;
}
dualsimplex.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#ifndef DUALSIMPLEX_H
#define DUALSIMPLEX_H
 
#include <string>
#include <fstream>
#include <iostream>
using namespace std;
 
class DualSimplex
{
...
public:
    DualSimplex();
    void SetData();
    void SetData( string in );
}
dualsimplex.cpp:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include "dualsimplex.h"
#include "tools.h"
#include <iostream> 
#include <fstream>
#include <sstream>
#include <iomanip>
#include <cstring>
#include <cstdlib>
#include <cmath>
using namespace std;
 
DualSimplex::DualSimplex()
{
    for ( int i = 0; i < MAX_NUMBER_OF_VARIABLES; i++ )
    {
        b[i] = 0;
        dual_s[i] = 0;
    }
...
}
 
void DualSimplex::SetData()
{
    char sType[3];
    cout << "Enter the type of problem (\"max\" or \"min\"): ";
    cin >> sType;
    cout << endl;
...
}
компилирую:
Bash
1
2
3
4
5
g++ main.cpp -o test
/tmp/cczMYHXr.o: In function `main':
main.cpp:(.text+0x7a): undefined reference to `DualSimplex::DualSimplex()'
main.cpp:(.text+0x88): undefined reference to `DualSimplex::SetData()'
collect2: ld returned 1 exit status
почитал, что умные люди пишут - заменил в main.cpp 'DualSimplex problem;' на 'DualSimplex problem();':
Bash
1
2
3
g++ main.cpp -o test
main.cpp: In function ‘int main()’:
main.cpp:9: error: request for member ‘SetData’ in ‘problem’, which is of non-class type ‘DualSimplex ()()’

Не могу понять - небольшие изменения, а ошибки подключения переходят в ошибки вызова функций класса. Почему?
И как правильно создать объект, а потом вызвать функцию?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.05.2011, 01:13
Ответы с готовыми решениями:

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

Программа с заголовочным файлом (с++)
Всем Привет! Недавно стал изучать использование заголовочных файлов в с++ и столкнулся с проблеммой. Написал вот такую программу (она...

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

25
Делаю внезапно и красиво
Эксперт С++
 Аватар для Deviaphan
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
22.05.2011, 06:43
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Lynx607 Посмотреть сообщение
Вы согласны?
Нет. Не согласны.
То, что в одной книжке про это не сказано не означает, что в других книгах про это тоже умалчивают.
В любом достаточно крупном проекте, использующем сторонние библиотеки, вопрос пространств имён стоит очень остро. Как же все программисты любят создавать классы string и vector и им подобные...
1
0 / 0 / 0
Регистрация: 18.10.2010
Сообщений: 19
22.05.2011, 13:36  [ТС]
Deviaphan, я спросил потому, что каждый волен выбирать тот вариант, который ему больше нравится. Другой вопрос - правильный это выбор или нет.
0
Делаю внезапно и красиво
Эксперт С++
 Аватар для Deviaphan
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
22.05.2011, 13:51
Тогда, давайте все функции и классы помещать в пространство std. Откажемся от разделения на файлы, будем всё в один cpp файл писать (это ведь и скорость компиляции повысит!). Откажемся от закрытых полей и методов - не удобно же! Ну и так далее... А что? Может мне так нравится!
0
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
22.05.2011, 15:37
Я вот это не пойму:
Цитата Сообщение от Deviaphan Посмотреть сообщение
Как же все программисты любят создавать классы string и vector и им подобные...
гадал-гадал чё это значит и не понял. Действовать так плохо или хорошо? По мне так плохо, я делаю vector_
0
Делаю внезапно и красиво
Эксперт С++
 Аватар для Deviaphan
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
22.05.2011, 15:39
Цитата Сообщение от kravam Посмотреть сообщение
По мне так плохо, я делаю vector_
А я во первых не делаю, а во вторых помещаю в пространство имён (не std).
0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
22.05.2011, 15:48
kravam, Ну вот смотри... Пишем класс список например. Какое нормальное название? List не так-ли? Так на кой фиг измудряться?
Или класс Stack или Queue...
Гораздо логичнее написать так и поместить в собственное пространство имен, а так же не включать std в этом заголовочном файле...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
22.05.2011, 15:48

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

Невозможно открыть include с заголовочным файлом
Подскажите решение проблемы что только не пробовал не помогает fatal error C1083: Cannot open include file: 'tinystr.h': No such file or...

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

Работа с файлом
Программа для записи/прочитки текстовых файлов. Почему когда ввожу строку, в файл сохраняется только часть строки(до первого пробела)? ...

Работа с файлом
Ранее уже выкладывал код. Поизменял. Поиск разработал. Но ни фига не работает)). Помогите найти. пожалуйста ошибку. В майне цикл не...


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

Или воспользуйтесь поиском по форуму:
26
Ответ Создать тему
Новые блоги и статьи
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru