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

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

Восстановить пароль Регистрация
 
grrrrr
 Аватар для grrrrr
45 / 45 / 7
Регистрация: 21.04.2009
Сообщений: 265
10.11.2010, 13:55     Директива #include #1
Всем привет. Пишу программу по книге Дейтел Х., Дейтел П - Как программировать на 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
Посмотрите здесь:

директива препроцессора C++
директива extern C++
Директива #include C++
ошибка в лабе не находит #include<iomanip.h> #include<conio.h> C++
C++ Какая разница между #include<> и #include""?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
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
 Аватар для grrrrr
45 / 45 / 7
Регистрация: 21.04.2009
Сообщений: 265
10.11.2010, 15:20  [ТС]     Директива #include #3
easybudda, поправил тоже cout, проблема осталась..
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
10.11.2010, 15:24     Директива #include #4
Цитата Сообщение от grrrrr Посмотреть сообщение
проблема осталась..
Значит не так как-то проект создаёте... По сути нужно создать один проект и в него по очереди все три файла добавлять. Вы среду разработки укажите - кто-нибудь точнее подскажет. В самом коде ошибок, видимо, нет - компилируется, выполняется...
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
Эксперт С++Автор FAQ
 Аватар для Evg
16828 / 5249 / 321
Регистрация: 30.03.2009
Сообщений: 14,136
Записей в блоге: 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
Еще ссылки по теме:

C++ Директива препроцессора #if
C++ Работа с файлами в C# с исп. библиотек #include <stdio.h> #include <stdlib.h> #include <math.h> #include <io.h>
Чем отличается #include <cstring>, #include <string> и #include <string.h>? C++

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

Или воспользуйтесь поиском по форуму:
grrrrr
 Аватар для 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
Ответ Создать тему
Опции темы

Текущее время: 12:15. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru