Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/11: Рейтинг темы: голосов - 11, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 21.01.2014
Сообщений: 73

Не удаётся связать два файла timer.h и timer.cpp

16.04.2015, 20:46. Показов 2349. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер, у меня есть класс и библиотеки которые нужно использовать в нескольких программах, по этому я хочу сделать отдельный файл timer.h только с конструкциями и timer.cpp с содержимыми методами и функциями, все работает кроме двух методов, ofstream& timer::output(ofstream &stream) const и ifstream& timer::input(ifstream &stream), подчеркивает красным в файле timer.cpp и пишет declaration is incompatible (декларация несовместима) и ссылается на файл timer.h на те строчки где прописана их конструкция. Может я не так их прописываю? подскажите пожалуйста только не предлагайте забить на разбиение на дополнительные файлы, мне это необходимо. Спасибо заранее. ps не обращайте внимания на двойное прописывание stdafx.h)
вот сами файлы
timer.h :

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
#include "StdAfx.h"
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <clocale>
#include <ctime>
 
class timer
{
    unsigned int hour,min,sec;
public:
    timer(int a, int b, int c);
    timer();
    virtual ~timer();
    
    timer& operator=(const timer& val);
    
    void show();
 
    ofstream& output(ofstream &stream) const;
    ifstream& input(ifstream &stream);
    
    bool bol(const timer& obj);
};
 
ofstream& operator<<(ofstream& stream, const timer &c);
ifstream& operator>>(ifstream& stream, timer &c);

и timer.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
#include "StdAfx.h"
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <clocale>
#include <ctime>
 
class timer
{
    unsigned int hour,min,sec;
public:
    timer(int a, int b, int c);
    timer();
    virtual ~timer();
    
    timer& operator=(const timer& val);
    
    void show();
 
    ofstream& output(ofstream &stream) const;
    ifstream& input(ifstream &stream);
    
    bool bol(const timer& obj);
};
 
ofstream& operator<<(ofstream& stream, const timer &c);
ifstream& operator>>(ifstream& stream, timer &c);
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
16.04.2015, 20:46
Ответы с готовыми решениями:

Запуск/остановка таймера при вводе в Edit команд Timer Start/Timer Stop
Суть вот в чём на форме есть таймер который выполняет обратный отсчёт и есть Edit, задача вот какая при вводе в Edit команды...

Timer vs System.Windows.Forms.Timer
Занятную штуку недавно обнаружил: Всем известный Timer из модуля Timers отказывается работать, если подгружается модуль...

Неоднозначная ссылка "Timer" между "System.Windows.Forms.Timer" и "System.Timers.Timer"
Я делю таймер в Windows Form. но ругается компилятор на такой код: using System; using System.Collections.Generic; using...

4
Жарю без масла
867 / 749 / 225
Регистрация: 13.01.2012
Сообщений: 1,702
16.04.2015, 20:48
Лучший ответ Сообщение было отмечено алексашк как решение

Решение

C++
1
2
std::ofstream
std::ifstream
1
0 / 0 / 0
Регистрация: 21.01.2014
Сообщений: 73
16.04.2015, 20:54  [ТС]
извиняюсь, файл timer.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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#include "stdafx.h"
#include "timer.h"
 
using namespace std;
 
timer::timer(int a, int b, int c)
{
    hour = a;
    min = b;
    sec = c;
}
 
timer::timer()
{
    srand(time(NULL));
    hour = rand()%23;
    min = rand()%59;
    sec = rand()%59;
}
 
timer::~timer()
{
}
    
timer& timer::operator=(const timer& val)
{
    hour=val.hour;
    min=val.min;
    sec=val.sec;
}
    
void timer::show()
{
    cout<<hour<<":"<<min<<":"<<sec<<endl;
}
 
ofstream& timer::output(ofstream &stream) const
{
    stream.write((const char *)&hour, sizeof(hour));
    stream.write((const char *)&min, sizeof(min));
    stream.write((const char *)&sec, sizeof(sec));
    return stream;
}
 
ifstream& timer::input(ifstream &stream)
{
    stream.read((char *)&hour, sizeof(hour));
    stream.read((char *)&min, sizeof(min));
    stream.read((char *)&sec, sizeof(sec));
    return stream;
}
    
bool timer::bol(const timer& obj)
{
    int s,r = 0;
    s = hour * 24 * 60 + min * 60 + sec;
    r = obj.hour * 24 * 60 + obj.min * 60 + obj.sec;
    return s > r;
}
 
ofstream& operator<<(ofstream& stream, const timer &c)
{
    return c.output(stream);
}
 
ifstream &operator>>(ifstream &stream, timer &c)
{
    return c.input(stream);
}
Добавлено через 1 минуту
извиняюсь, файл timer.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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#include "stdafx.h"
#include "timer.h"
 
using namespace std;
 
timer::timer(int a, int b, int c)
{
    hour = a;
    min = b;
    sec = c;
}
 
timer::timer()
{
    srand(time(NULL));
    hour = rand()%23;
    min = rand()%59;
    sec = rand()%59;
}
 
timer::~timer()
{
}
    
timer& timer::operator=(const timer& val)
{
    hour=val.hour;
    min=val.min;
    sec=val.sec;
}
    
void timer::show()
{
    cout<<hour<<":"<<min<<":"<<sec<<endl;
}
 
ofstream& timer::output(ofstream &stream) const
{
    stream.write((const char *)&hour, sizeof(hour));
    stream.write((const char *)&min, sizeof(min));
    stream.write((const char *)&sec, sizeof(sec));
    return stream;
}
 
ifstream& timer::input(ifstream &stream)
{
    stream.read((char *)&hour, sizeof(hour));
    stream.read((char *)&min, sizeof(min));
    stream.read((char *)&sec, sizeof(sec));
    return stream;
}
    
bool timer::bol(const timer& obj)
{
    int s,r = 0;
    s = hour * 24 * 60 + min * 60 + sec;
    r = obj.hour * 24 * 60 + obj.min * 60 + obj.sec;
    return s > r;
}
 
ofstream& operator<<(ofstream& stream, const timer &c)
{
    return c.output(stream);
}
 
ifstream &operator>>(ifstream &stream, timer &c)
{
    return c.input(stream);
}
в файл .h добавил std:: но не помогло, так же подчёркивает и то же самое пишет
0
Жарю без масла
867 / 749 / 225
Регистрация: 13.01.2012
Сообщений: 1,702
16.04.2015, 20:54
в timer.h
C++
1
#include <fstream>
0
0 / 0 / 0
Регистрация: 21.01.2014
Сообщений: 73
16.04.2015, 20:59  [ТС]
всё, разобрался, помогло изменение, спасибо за помощь)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
16.04.2015, 20:59
Помогаю со студенческими работами здесь

Как связать два cpp файла в одном проекте (visual studio 2010)
Есть два программы: одна создает файл.txt, вторая читает из него данные и выводит на экран. создает файл #include &lt;iostream&gt; ...

При randomize timer: пишет invalid outside procedure и указывает на randomize Timer
почему в к примеру таком коде: Randomize Timer Dim tm As Integer Private Sub Timer1_Timer() tm = tm + 1 s = Int(Rnd * 2) If s /...

Не понимаю общего принципа. Как связать AJAX, Timer, UpdatePanel и контролы, в ней находящиеся
Суть такова. Я решил написать никому не нужный корпоративный чат, на примере которого хотел использовать наиболее оптимальные методы...

System.Timers.Timer vs System.Threading.Timer
System.Timers.Timer vs System.Threading.Timer. в чем разница если можно примеры....

Отображение сохранения файла Word через timer+progressbar
Здравствуйте! Хочу реализовать одну вещь: при запуске формы запускаем savefiledialog, выбираем путь для сохранения файла в формате word. А...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru