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

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

Войти
Регистрация
Восстановить пароль
 
ozzy_b
2 / 2 / 0
Регистрация: 02.10.2012
Сообщений: 169
#1

Подключение сообственного класса через файл - C++

12.03.2013, 15:25. Просмотров 236. Ответов 5
Метки нет (Все метки)

Я написал простенький код через классы, и мне бы хотелось описать сам класс в дополнительном файле и подключить его в главном файле. Но я незнаю как, и незнаю много ли придеться в моем коде всего переписывать.
Кликните здесь для просмотра всего текста
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
#include <iostream>
#include <string.h>
#include <conio.h>
 
using namespace std;
 
const int n = 5;
 
class person
{
    char last_name[15];
    char second_name[15];
    char first_name[15];
    char adress[15];
    char hender[15];
    char education[15];
    int date_of_born;
    public:
        void show(int i)
        {
            cout << "Person # " << i+1 << endl << "   Last Name " << last_name <<endl;
            cout << "   Second Name " << second_name <<endl;
            cout << "   First Name " << first_name <<endl;
            cout << "   Adress " << adress <<endl;
            cout << "   Hender " <<hender <<endl;
            cout << "   Education " << education <<endl;
            cout << "   Date of born " << date_of_born <<endl;
        }
        void input(int i)
        {
            cout <<"Person # " << i+1 << endl << "   Enter last_name: ";
            cin >> last_name;
            cout <<"   Enter second_name: ";
            cin >> second_name;
            cout <<"   Enter first_name: ";
            cin >> first_name;
            cout <<"   Enter adress: ";
            cin >> adress;
            cout <<"   Enter hender: ";
            cin >> hender;
            cout <<"   Enter education : ";
            cin >> education ;
            cout <<"   Enter date_of_born: ";
            cin >> date_of_born;
        }
        bool show_age(bool I, int age)
        {
            if (date_of_born > age)
                I = true;
            else
                I = false;
            return I;
        }
        bool show_edu(bool I)
        {
            if ( strcmp ("hight", education) == 0 )
                I = true;
            else
                I = false;
            return I;
        }
        bool show_hender(bool I)
        {
            if (strcmp ("male", hender) == 0)
                I = true;
            else
                I = false;
            return I;
        }
};
 
void main()
{
    person pers[n];
    while(1)
    {
        int key = 0;
        cout << "Enter command 1) enter; 2) show; 3) show_age; 4) show_edu; 5) show_hender: ";
        cin >> key;
        if (key == 0) 
            break;
        switch(key)
        {
            case 1: 
            {
                cout << "****** INPUT *******" << endl;
                for (int i=0; i<n; i++)
                {
                    pers[i].input(i);
                    cout << endl;
                }
            }
            break;
            case 2: 
            {
                cout << "****** SHOW ******" << endl;
                for (int i=0; i<n; i++)
                {
                    pers[i].show(i);
                    cout << endl;
                }
            }
            break;
            case 3:
            {
                cout << "****** SHOW AGE *******" << endl;
                int age;
                cout << "Enter age" << endl;
                cin >> age;
                bool I = false;
                for (int i=0; i<n; i++)
                {
                    I = pers[i].show_age(I, age);
                    if (I == true)
                        pers[i].show(i);
                }
            }
            break;
            case 4:
            {
                cout << "****** SHOW HIGHT EDUCATION *******" << endl;
                bool J = false;
                for (int i=0; i<n; i++)
                {
                    J = pers[i].show_edu(J);
                    if (J == true)
                        pers[i].show(i);
                }
            }
            break;
            case 5:
            {
                cout << "****** SHOW MALE *******" << endl;
                bool K = false;
                for (int i=0; i<n; i++)
                {
                    K = pers[i].show_hender(K);
                    if (K == true)
                        pers[i].show(i);
                }
            }
            break;
        }   
    }
    getch();
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.03.2013, 15:25     Подключение сообственного класса через файл
Посмотрите здесь:

Подключение класса, ошибки - C++
Доброй ночи Нужна была работа с файлами ini для мини игры написанной на с++ winapi скачал в интернете класс (CIniFile Class for...

ООП. header файл. Функцию объекта вынести в файл класса - C++
#ifndef DRAW_H #define DRAW_H #include &quot;mainwindow.h&quot; #include &quot;ui_mainwindow.h&quot; #include &lt;QFile&gt; #include &lt;QTextStream&gt; ...

Разбиение метода класса на файл реализации и файл заголовка - C++
Добрый вечер. Есть код в заголовочном файле класса : #pragma once class MyArr { private: int *numbers; public: int...

Подключение файлов через extern - C++
пишу такую фигню //HH2.cpp #include &quot;mouse.h&quot; int main() { HWND hWnd = NULL;

Подключение миши через USB порт - C++
Всем доброго времени суток. Не могли бы Вы помочь с программой. Условие звучит так: подключаем мышь в USB порт, если подключение произошло,...

подключение к mysql через odbc на fedora - C++
Добрый день! Пытаюсь создать подключение к БД. Настроил odbc. При вызове соединения isql -v lcab-connector. Выдает: Connected! C c++...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
srg_btl
34 / 34 / 2
Регистрация: 21.02.2013
Сообщений: 90
12.03.2013, 15:35     Подключение сообственного класса через файл #2
Пример:
Был класс:
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
class Date
{
private:
    int m_nMonth;
    int m_nDay;
    int m_nYear;
 
    Date() { } // private default constructor
 
public:
    Date(int nMonth, int nDay, int nYear)
    {
        SetDate(nMonth, nDay, nYear);
    }
 
    void SetDate(int nMonth, int nDay, int nYear)
    {
        m_nMonth = nMonth;
        m_nDay = nDay;
        m_nYear = nYear;
    }
 
    int GetMonth() { return m_nMonth; }
    int GetDay()  { return m_nDay; }
    int GetYear() { return m_nYear; }
};
Разделяем его на два файла: один с расширением .h другой .cpp

Name.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
#ifndef NAME_H
#define NAME_H
 
class Date
{
private:
    int m_nMonth;
    int m_nDay;
    int m_nYear;
 
    Date() { } // private default constructor
 
public:
    Date(int nMonth, int nDay, int nYear);
 
    void SetDate(int nMonth, int nDay, int nYear);
 
    int GetMonth() { return m_nMonth; }
    int GetDay()  { return m_nDay; }
    int GetYear() { return m_nYear; }
};
 
 
#endif
Name.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include "Name.h"
 
// Date constructor
Date::Date(int nMonth, int nDay, int nYear)
{
    SetDate(nMonth, nDay, nYear);
}
 
// Date member function
void Date::SetDate(int nMonth, int nDay, int nYear)
{
    m_nMonth = nMonth;
    m_nDay = nDay;
    m_nYear = nYear;
}
SummerRain
326 / 325 / 17
Регистрация: 16.12.2012
Сообщений: 544
12.03.2013, 15:42     Подключение сообственного класса через файл #3
person.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class person
{
    char last_name[15];
    char second_name[15];
    char first_name[15];
    char adress[15];
    char hender[15];
    char education[15];
    int date_of_born;
public:
    void show(int i);
    void input(int i);
    bool show_age(bool I, int age);
    bool show_edu(bool I);
    bool show_hender(bool I);
};
person.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
#include "person.h"
#include <iostream>
 
using namespace std;
 
void person::show(int i)
    {
        cout << "Person # " << i+1 << endl << "   Last Name " << last_name <<endl;
        cout << "   Second Name " << second_name <<endl;
        cout << "   First Name " << first_name <<endl;
        cout << "   Adress " << adress <<endl;
        cout << "   Hender " <<hender <<endl;
        cout << "   Education " << education <<endl;
        cout << "   Date of born " << date_of_born <<endl;
    }
 
void person::input(int i)
    {
        cout <<"Person # " << i+1 << endl << "   Enter last_name: ";
        cin >> last_name;
        cout <<"   Enter second_name: ";
        cin >> second_name;
        cout <<"   Enter first_name: ";
        cin >> first_name;
        cout <<"   Enter adress: ";
        cin >> adress;
        cout <<"   Enter hender: ";
        cin >> hender;
        cout <<"   Enter education : ";
        cin >> education ;
        cout <<"   Enter date_of_born: ";
        cin >> date_of_born;
    }
 
bool person::show_age(bool I, int age)
    {
        if (date_of_born > age)
            I = true;
        else
            I = false;
        return I;
    }
 
bool person::show_edu(bool I)
    {
        if ( strcmp ("hight", education) == 0 )
            I = true;
        else
            I = false;
        return I;
    }
 
bool person::show_hender(bool I)
    {
        if (strcmp ("male", hender) == 0)
            I = true;
        else
            I = false;
        return I;
    }
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
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#include <iostream>
#include <string.h>
#include <conio.h>
#include "person.h"
 
using namespace std;
 
const int n = 5;
 
 
 
void main()
{
    person pers[n];
    while(1)
    {
        int key = 0;
        cout << "Enter command 1) enter; 2) show; 3) show_age; 4) show_edu; 5) show_hender: ";
        cin >> key;
        if (key == 0) 
            break;
        switch(key)
        {
            case 1: 
            {
                cout << "****** INPUT *******" << endl;
                for (int i=0; i<n; i++)
                {
                    pers[i].input(i);
                    cout << endl;
                }
            }
            break;
            case 2: 
            {
                cout << "****** SHOW ******" << endl;
                for (int i=0; i<n; i++)
                {
                    pers[i].show(i);
                    cout << endl;
                }
            }
            break;
            case 3:
            {
                cout << "****** SHOW AGE *******" << endl;
                int age;
                cout << "Enter age" << endl;
                cin >> age;
                bool I = false;
                for (int i=0; i<n; i++)
                {
                    I = pers[i].show_age(I, age);
                    if (I == true)
                        pers[i].show(i);
                }
            }
            break;
            case 4:
            {
                cout << "****** SHOW HIGHT EDUCATION *******" << endl;
                bool J = false;
                for (int i=0; i<n; i++)
                {
                    J = pers[i].show_edu(J);
                    if (J == true)
                        pers[i].show(i);
                }
            }
            break;
            case 5:
            {
                cout << "****** SHOW MALE *******" << endl;
                bool K = false;
                for (int i=0; i<n; i++)
                {
                    K = pers[i].show_hender(K);
                    if (K == true)
                        pers[i].show(i);
                }
            }
            break;
        }   
    }
    _getch();
}
ozzy_b
2 / 2 / 0
Регистрация: 02.10.2012
Сообщений: 169
12.03.2013, 15:45  [ТС]     Подключение сообственного класса через файл #4
то в .h я просто копирую свой класс полностю(ничего неизменяя) и дописую #indef... а в .cpp что я делать должен? чтото неочень я понял етот ход
srg_btl
34 / 34 / 2
Регистрация: 21.02.2013
Сообщений: 90
12.03.2013, 15:52     Подключение сообственного класса через файл #5
По идее в хедере должны быть одявления, а в спп-файле реализация... Конечно это все можно сделать в хедере, но....
Можешь почитать об этом тут. Но в принципе статей в инете куча, в т.ч. на гусском
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.03.2013, 15:52     Подключение сообственного класса через файл
Еще ссылки по теме:

Подключение сторонней библиотеки gmp C++ через MinGW - C++
Скачивал MinGW,там выставлял установку пакета GMP, после чего писал вот такой код: #include &lt;cstddef&gt; #include &lt;iostream&gt; #include...

Обращение к элементам класса через [] - C++
Пишу класс для работы с комплексными числами, почти все готово, осталось только 1 задание.

Многократный ввод класса через консоль - C++
Подскажите пожалуйста! Есть класс Dot. Этот класс содержит координаты точки треугольника. Как можно сделать что бы при исполнении...

Инициализация полей класса через vector<> - C++
Здравствуйте, можете подсказать как правильно инициализировать поля класса, вот например есть класс MyClass, в нем 2 поля int x int у,...

Указатель на шаблон класса через typedef - C++
Здравствуйте. Возникла следующая проблема: захотел определить указатель на класс с template при помощи typedef, но вываливает ошибку: ...

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


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

Или воспользуйтесь поиском по форуму:
ozzy_b
2 / 2 / 0
Регистрация: 02.10.2012
Сообщений: 169
12.03.2013, 15:52  [ТС]     Подключение сообственного класса через файл #6
все, пеперь все понял. спасибо)
Yandex
Объявления
12.03.2013, 15:52     Подключение сообственного класса через файл
Ответ Создать тему
Опции темы

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