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

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

Войти
Регистрация
Восстановить пароль
 
Wbgury
88 / 85 / 2
Регистрация: 16.05.2010
Сообщений: 272
#1

не получается подключить класс - C++

24.03.2012, 10:50. Просмотров 893. Ответов 10
Метки нет (Все метки)

Я работаю с IDE CodeBlocks. Создаю свой класс в отдельном файле и пытаюсь его добавить в исходный файл вот собственно
главный файл main.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 <iostream>
#include "time.h"
 
using namespace std;
 
time t;
 
int main()
{
 
    cout << "Nachalnoe znachenie voennogo vremeny ravno ";
    t.printMilitary();
    cout << endl << "Nachalnoe znachenie standartnogo ravno ";
    t.printStandart();
    t.setTime(13, 34, 6);
 
    cout << "Voennoe vrymya ";
    t.printMilitary();
    cout << endl << "Standartnoe ";
    t.printStandart();
 
    return 0;
}
вот подключаемый файл time.h

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#ifndef TIME_H
#define TIME_H
 
 
class time {
    public:
        Time();
        void setTime(int, int, int);
        void printMilitary();
        void printStandart();
    private:
        int hour;
        int minute;
        int second;
};
 
#endif // TIME_H
и фот файл с функциями time.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
#include "time.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:printStandart()
{
    cout << ((hour == 0 || hour == 12 ) ? 12 : hour % 12)
         << ":" << (minute < 10 ? "0" : "") << minute
         << ":" << (second < 10 ? "0" : "") << second
         << (hour < 12 ? " AM" : " PM");
}
Такие ошибки в главном файле:

C++
1
2
3
4
5
||=== until, Debug ===|
 C++\until\main.cpp|6|error: 'time' does not name a type|
 C++\until\main.cpp||In function 'int main()':|
 C++\until\main.cpp|12|error: 't' was not declared in this scope|
||=== Build finished: 2 errors, 0 warnings ===|
Что делать? Я точно не знаю.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.03.2012, 10:50
Здравствуйте! Я подобрал для вас темы с ответами на вопрос не получается подключить класс (C++):

Не получается подключить MPIR - C++
Искал в интернете как установить MPIR на visual studio 2017 community,так и не нашёл нормальной инструкции,не могли бы вы мне объяснить как...

Не получается подключить библиотеку libcurl - C++
При компиляции простейшего кода: #include &lt;stdio.h&gt; #include &lt;curl.h&gt; int main() { CURL *curl; curl = curl_easy_init(); ...

Не получается подключить mkl.h к проекту - C++
Всем доброго времени суток! Передо мной стоит задача: использовать для своих расчетов генератор случайных чисел mt19937 из Intel MKL. ...

TFileStream: как подключить класс?? - C++
Доброго всем времени суток!! тут я курсач пишу и вообщем возникла проблемка ... TFileStream *file = new...

Как правильно подключить шаблонный класс (VS2008)? - C++
Добрый день! Помогите в подключении шаблонного класса в Visual Studio 2008 Professional. Создал консольный проект,в заголовочном...

Не получается использовать методы класс - C++
Прошу объяснить мне (дебилу) что я делаю не так: main.cpp #include &quot;class_name.h&quot; int main(int argc, char *argv) { ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
panicwassano
592 / 560 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
24.03.2012, 11:16 #2
сам файл включен в проект? или вы его только инклудите?
0
Wbgury
88 / 85 / 2
Регистрация: 16.05.2010
Сообщений: 272
24.03.2012, 11:37  [ТС] #3
а как включить?
он вроде находится в папке проекта

Добавлено через 27 секунд
и создавал я класс средставами CodeBloks
0
Toshkarik
1141 / 858 / 51
Регистрация: 03.08.2011
Сообщений: 2,384
Завершенные тесты: 1
24.03.2012, 11:42 #4
Даже на форуме подсвечивает слово time... как пример вредного использования using namespace std; Переименуйте ваш класс в Time ( именно с большой буквы ). Так как имя time уже занята стандартной библиотекой. А конструктор написал с большой Так нельзя делать, имя класса и конструктора должны быть одинаковыми.
1
Wbgury
88 / 85 / 2
Регистрация: 16.05.2010
Сообщений: 272
24.03.2012, 12:10  [ТС] #5
пробовал не получилось и с большой тоже самое
C++
1
2
3
4
5
||=== until, Debug ===|
 C++\until\main.cpp|6|error: 'time' does not name a type|
 C++\until\main.cpp||In function 'int main()':|
 C++\until\main.cpp|12|error: 't' was not declared in this scope|
||=== Build finished: 2 errors, 0 warnings ===|
0
Toshkarik
1141 / 858 / 51
Регистрация: 03.08.2011
Сообщений: 2,384
Завершенные тесты: 1
24.03.2012, 12:13 #6
Ну так в основном файле поменяйте на
C++
1
Time t;
1
Wbgury
88 / 85 / 2
Регистрация: 16.05.2010
Сообщений: 272
26.03.2012, 20:37  [ТС] #7
ААА не получилось. Сделал всё что только было возможно. Вот у кого есть Codeblocks умоляю помогите! Вот проект until.rar
0
Toshkarik
1141 / 858 / 51
Регистрация: 03.08.2011
Сообщений: 2,384
Завершенные тесты: 1
26.03.2012, 20:41 #8
Что теперь пишет?
0
Wbgury
88 / 85 / 2
Регистрация: 16.05.2010
Сообщений: 272
26.03.2012, 21:31  [ТС] #9
главный файл main.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 <iostream>
#include "time1.h"
 
using namespace std;
 
int main()
{
    Time t;
 
    cout << "Nachalnoe znachenie voennogo vremeny ravno ";
    t.printMilitary();
    cout << endl << "Nachalnoe znachenie standartnogo ravno ";
    t.printStandart();
    t.setTime(13, 34, 6);
 
    cout << "Voennoe vrymya ";
    t.printMilitary();
    cout << endl << "Standartnoe ";
    t.printStandart();
 
    return 0;
}
вот подключаемый файл time1.h

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#ifndef TIME_H
#define TIME_H
 
class Time {
    public:
        Time();
        void setTime(int, int, int);
        void printMilitary();
        void printStandart();
    private:
        int hour;
        int minute;
        int second;
};
 
#endif // TIME_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
29
30
31
32
#include <iostream>
#include "time1.h"
 
using namespace std;
 
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:
printStandart()
{
    cout << ((hour == 0 || hour == 12 ) ? 12 : hour % 12)
         << ":" << (minute < 10 ? "0" : "") << minute
         << ":" << (second < 10 ? "0" : "") << second
         << (hour < 12 ? " AM" : " PM");
}
а фот ошибки
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
||=== until, Debug ===|
\Desktop\until\src\time1.cpp|2|error: time1.h: No such file or directory|
\Desktop\until\src\time1.cpp|6|error: 'Time' has not been declared|
\Desktop\until\src\time1.cpp|6|error: ISO C++ forbids declaration of 'Time' with no type|
\Desktop\until\src\time1.cpp||In function 'int Time()':|
\Desktop\until\src\time1.cpp|8|error: 'hour' was not declared in this scope|
\Desktop\until\src\time1.cpp|8|error: 'minute' was not declared in this scope|
\Desktop\until\src\time1.cpp|8|error: 'second' was not declared in this scope|
\Desktop\until\src\time1.cpp|9|warning: no return statement in function returning non-void|
\Desktop\until\src\time1.cpp|11|error: 'Time' is not a class or namespace|
\Desktop\until\src\time1.cpp||In function 'void setTime(int, int, int)':|
\Desktop\until\src\time1.cpp|13|error: 'hour' was not declared in this scope|
\Desktop\until\src\time1.cpp|14|error: 'minute' was not declared in this scope|
\Desktop\until\src\time1.cpp|15|error: 'second' was not declared in this scope|
\Desktop\until\src\time1.cpp|18|error: 'Time' is not a class or namespace|
\Desktop\until\src\time1.cpp||In function 'void printMilitary()':|
\Desktop\until\src\time1.cpp|20|error: 'hour' was not declared in this scope|
\Desktop\until\src\time1.cpp|21|error: 'minute' was not declared in this scope|
\Desktop\until\src\time1.cpp|22|error: 'second' was not declared in this scope|
\Desktop\until\src\time1.cpp|25|error: expected initializer before ':' token|
||=== Build finished: 15 errors, 1 warnings ===|
0
Wbgury
88 / 85 / 2
Регистрация: 16.05.2010
Сообщений: 272
26.03.2012, 21:34  [ТС] #10
вот как выглядит всё у меня
не получается подключить класс
0
Toshkarik
1141 / 858 / 51
Регистрация: 03.08.2011
Сообщений: 2,384
Завершенные тесты: 1
26.03.2012, 21:54 #11
Положи time1.h и time1.cpp в папку где лежит основной файл ( с функцией main() )
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.03.2012, 21:54
Привет! Вот еще темы с ответами:

Получается структура в С++ - это класс? - C++
Элементами или полями структуры могут быть переменные, массивы, ранее определенные структуры. Функции не могут быть полями структуры (В...

Как создать свой класс и подключить его в main? - C++
я новичок,хотел поинтересоваться,когда люди пишут программу,они сначала главную функцию main пишут,а потом пишут классы и подключают к main...

Не получается вынести класс в отдельный файл - C++
Добрый вечер. Не получается вынести код в отдельный файл. есть заголовочный файл, и есть файл с методами. При компиляции выдает ошибку...

Класс matrix. Не получается перегрузить оператор = - C++
Всем привет! Пишу класс matrix. Не получается перегрузить оператор = Конструктор копирования тоже не получается. Оба выводят одну и ту...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
26.03.2012, 21:54
Ответ Создать тему
Опции темы

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