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

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

Войти
Регистрация
Восстановить пароль
 
grrrrr
45 / 45 / 7
Регистрация: 21.04.2009
Сообщений: 265
#1

Директива #include - C++

10.11.2010, 13:55. Просмотров 820. Ответов 6
Метки нет (Все метки)

Всем привет. Пишу программу по книге Дейтел Х., Дейтел П - Как программировать на C++ FIG6_5.cpp, я компилирую проект FIG6_5.dev вместе с файлами FIG6_5.cpp и TIME1.cpp, выходят ошибки, помогите разобраться.

Заголовочный файл, который находится в папке с проектом
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#ifndef TIME1_H
#define TIME1_H
 
class Time
{
      public:
             Time();
             void setTime(int, int, int);
             void printMilitary();
             void printStandard();
      
      private:
              int hour;
              int minute;
              int second;  
};
#endif
далее создаю файл TIME1.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
#include <iostream>
#include "TIME1.h"
 
Time::Time()
{
            hour = minute = second = 0; 
}
void Time::setTime(int h, int m, int s)
{
     hour = (h >= 0 && h < 24) ? h : 0;
     minute = (m >= 0 && m < 60) ? m : 0;
     second = (s >= 0 && s < 60) ? s : 0;     
}
 
void Time::printMilitary()
{
     cout << (hour < 10 ? "0" : "") << hour << ":"
          << (minute < 10 ? "0" : "") << minute << ":"
          << (second < 10 ? "0" : "") << second;
}
 
void Time::printStandard()
{
     cout << ((hour == 0 || hour == 12) ? 12 : hour % 12)
          << ":" << (minute < 10 ? "0" : "") << minute
          << ":" << (second < 10 ? "0" : "") << second
          << (hour < 12 ? " AM " : " PM");
}
далее создаю проект FIG6_5.dev и файл FIG6_5.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
#include <cstdlib>
#include <iostream>
#include "time1.h"
using namespace std;
 
int main(int argc, char *argv[])
{
    Time t;
    
    cout << "Nachalnoe znachenie voennogo vremeni ravno ";
    t.printMilitary();
    cout << "\n" << "Nachalnoe znachenie standartnogo vremeni ravno ";
    t.printStandard();
    
    t.setTime(13, 27, 6);
    cout << "\n\n" << "Voennoe vremia posle setTime ravno ";
    t.printMilitary();
    cout << "\n" << "Standartnoe vremia posle setTime ravno ";
    t.printStandard();
    
    system("PAUSE");
    return EXIT_SUCCESS;
}
При компиляции выскакивают ошибки:

[Linker error] undefined reference to `Time :: Time()'
[Linker error] undefined reference to `Time :: printMilitary()'
[Linker error] undefined reference to `Time :: printStandard()'
[Linker error] undefined reference to `Time :: setTime(int, int, int)'
[Linker error] undefined reference to `Time :: printMilitary()'
[Linker error] undefined reference to `Time :: printStandard()'
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.11.2010, 13:55     Директива #include
Посмотрите здесь:

Директива include - C++
Допустим я создаю файл header.h:int N();, а так же файл header.cpp:#include &quot;header.h&quot; int N() { return 2; } Каким...

Директива #include - C++
Всем Привет! Помогите мне разобраться пожалуйста! Я не могу понять как работает директива #include. Я не понимаю где находятся файлы....

Директива using - C++
Задался вопросом по поводу директива using. #include &lt;iostream&gt; namespace x{int a = 100; int b = 10;} namespace y{int a = 10; int...

директива extern - C++
Никак н могу понять как решить проблму с директивой extern. Я подключил к проекту файл libext.h и попытался скомпилировать программу. И...

Директива #import - C++
Здорова! Подключаю tlb файл #include &lt;afxdisp.h&gt; // классы автоматизации MFC #import &quot;OLE_EXE.tlb&quot;...

Директива препроцессора #if - C++
Вобще при коспиляции файла взятого с офф сайта микрософт endian.h Получаю вот такие ошибки 17|error: operator '==' has no left operand ...

Директива #error - C++
Как ей правильно пользоваться? Надо что бы вывело сообщение об ошибке если индекс будет больше или равен 10 int main() { ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
easybudda
Эксперт С++
9460 / 5473 / 927
Регистрация: 25.07.2009
Сообщений: 10,495
10.11.2010, 14:20     Директива #include #2
grrrrr, я в командной строке пытался скомпилировать, ругнулось на cout в time1.cpp поправил - скомпилировалось и что-то вывело...
time1.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#ifndef TIME1_H
#define TIME1_H
 
class Time
{
      public:
             Time();
             void setTime(int, int, int);
             void printMilitary();
             void printStandard();
 
      private:
              int hour;
              int minute;
              int second;
};
 
#endif // TIME1_H

time1.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
#include <iostream>
#include "time1.h"
 
Time::Time()
{
            hour = minute = second = 0;
}
void Time::setTime(int h, int m, int s)
{
     hour = (h >= 0 && h < 24) ? h : 0;
     minute = (m >= 0 && m < 60) ? m : 0;
     second = (s >= 0 && s < 60) ? s : 0;
}
 
void Time::printMilitary()
{
    std::cout << (hour < 10 ? "0" : "") << hour << ":"
          << (minute < 10 ? "0" : "") << minute << ":"
          << (second < 10 ? "0" : "") << second;
}
 
void Time::printStandard()
{
    std::cout << ((hour == 0 || hour == 12) ? 12 : hour % 12)
          << ":" << (minute < 10 ? "0" : "") << minute
          << ":" << (second < 10 ? "0" : "") << second
          << (hour < 12 ? " AM " : " PM");
}

app.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <cstdlib>
#include <iostream>
#include "time1.h"
 
int main(int argc, char *argv[])
{
    Time t;
 
    std::cout << "Nachalnoe znachenie voennogo vremeni ravno ";
    t.printMilitary();
    std::cout << "\n" << "Nachalnoe znachenie standartnogo vremeni ravno ";
    t.printStandard();
 
    t.setTime(13, 27, 6);
    std::cout << "\n\n" << "Voennoe vremia posle setTime ravno ";
    t.printMilitary();
    std::cout << "\n" << "Standartnoe vremia posle setTime ravno ";
    t.printStandard();
 
    // system("PAUSE");
    return EXIT_SUCCESS;
}

Директива #include
grrrrr
45 / 45 / 7
Регистрация: 21.04.2009
Сообщений: 265
10.11.2010, 15:20  [ТС]     Директива #include #3
easybudda, поправил тоже cout, проблема осталась..
easybudda
Эксперт С++
9460 / 5473 / 927
Регистрация: 25.07.2009
Сообщений: 10,495
10.11.2010, 15:24     Директива #include #4
Цитата Сообщение от grrrrr Посмотреть сообщение
проблема осталась..
Значит не так как-то проект создаёте... По сути нужно создать один проект и в него по очереди все три файла добавлять. Вы среду разработки укажите - кто-нибудь точнее подскажет. В самом коде ошибок, видимо, нет - компилируется, выполняется...
grrrrr
45 / 45 / 7
Регистрация: 21.04.2009
Сообщений: 265
10.11.2010, 15:30  [ТС]     Директива #include #5
Среда Dev C++ v.4.9.9.2, проблем вроде раньше не было, я сейчас в первый раз делаю заголовочные файлы в Dev C++. Помогите. Просто в книге по этой главе и далее идут проекты с заголовочными файлами.
Evg
Эксперт CАвтор FAQ
17536 / 5774 / 370
Регистрация: 30.03.2009
Сообщений: 15,891
Записей в блоге: 26
10.11.2010, 16:24     Директива #include #6
Судя по всему, файл TIME1.cpp в компиляцию не попал
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.11.2010, 16:35     Директива #include
Еще ссылки по теме:

Директива #ifndef - C++
Здравствуйте! Есть такой код: #define lastVersion #ifndef lastVersion #include &lt;version1.h&gt; int main() { ClassA A; ...

директива препроцессора - C++
Не получается запустить простенькую программу на С++ Borland,вроде сделал все как надо,но выдает ошибку что не может подключиться к...

Директива #ifdef _DEBUG - C++
Добрый день, возникла следующая проблема: при переключении конфигурации Debug / Release директива #ifdef _DEBUG перестала реагировать на...

OpenMP: Директива ordered - C++
Доброго времени суток. В различных туториалах приводятся примеры использования директивы ordered, подобные следующему: #pragma omp...

Директива препроцессора pragma - C++
Добрый день! Помогите, пожалуйста, не могу понять смысл такой записи. (интересуют строки с участием _PACKED(строки 2-6 и 51-60), и что...


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

Или воспользуйтесь поиском по форуму:
grrrrr
45 / 45 / 7
Регистрация: 21.04.2009
Сообщений: 265
10.11.2010, 16:35  [ТС]     Директива #include #7
Evg, скачаю wxDev-C++ наверное, потом проверю.
Yandex
Объявления
10.11.2010, 16:35     Директива #include
Ответ Создать тему
Опции темы

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