Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

10.11.2010, 13:55. Просмотров 887. Ответов 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()'
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.11.2010, 13:55
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Директива #include (C++):

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

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

Работа с файлами в C# с исп. библиотек #include <stdio.h> #include <stdlib.h> #include <math.h> #include <io.h> - C++
В типизированном файле записаны названия городов и их численность. Увеличить численность каждого города на 5% (Количество жителей всегда...

#include<iostream>// подключение библиотек #include <conio.h> #include <climits> - C++
помогите для этой программы сделать блок-схему. Пожалуйста #include&lt;iostream&gt;// подключение библиотек #include &lt;conio.h&gt; #include...

Чем отличается #include <cstring>, #include <string> и #include <string.h>? - C++
Доброго времени суток :) Пишу свой класс и мне для нужны функции для работы со строками. Когда подключаю #include &lt;string&gt; все что мне...

ошибка в лабе не находит #include<iomanip.h> #include<conio.h> - C++
Само задание: Услуги телефонной сети оплачиваются по следующему правилу: за разговоры до A минут в месяц-C руб. а разговоры сверх...

6
easybudda
Модератор
Эксперт CЭксперт С++
9967 / 5890 / 996
Регистрация: 25.07.2009
Сообщений: 11,149
10.11.2010, 14:20 #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
0
grrrrr
45 / 45 / 7
Регистрация: 21.04.2009
Сообщений: 265
10.11.2010, 15:20  [ТС] #3
easybudda, поправил тоже cout, проблема осталась..
0
easybudda
Модератор
Эксперт CЭксперт С++
9967 / 5890 / 996
Регистрация: 25.07.2009
Сообщений: 11,149
10.11.2010, 15:24 #4
Цитата Сообщение от grrrrr Посмотреть сообщение
проблема осталась..
Значит не так как-то проект создаёте... По сути нужно создать один проект и в него по очереди все три файла добавлять. Вы среду разработки укажите - кто-нибудь точнее подскажет. В самом коде ошибок, видимо, нет - компилируется, выполняется...
1
grrrrr
45 / 45 / 7
Регистрация: 21.04.2009
Сообщений: 265
10.11.2010, 15:30  [ТС] #5
Среда Dev C++ v.4.9.9.2, проблем вроде раньше не было, я сейчас в первый раз делаю заголовочные файлы в Dev C++. Помогите. Просто в книге по этой главе и далее идут проекты с заголовочными файлами.
0
Evg
Эксперт CАвтор FAQ
18884 / 6840 / 498
Регистрация: 30.03.2009
Сообщений: 19,255
Записей в блоге: 30
10.11.2010, 16:24 #6
Судя по всему, файл TIME1.cpp в компиляцию не попал
1
grrrrr
45 / 45 / 7
Регистрация: 21.04.2009
Сообщений: 265
10.11.2010, 16:35  [ТС] #7
Evg, скачаю wxDev-C++ наверное, потом проверю.
0
10.11.2010, 16:35
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.11.2010, 16:35
Привет! Вот еще темы с ответами:

Какая разница между #include<> и #include""? - C++
Позволите спросить несколько вопросов: 1)Какая разница между #include&lt;&gt; и #include&quot;&quot; 2)Если нужно значение объекта и я не собираюсь его...

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

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

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


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

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

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