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

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

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

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

12.03.2013, 15:25. Просмотров 225. Ответов 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     Подключение сообственного класса через файл
Посмотрите здесь:

подключение к mysql через odbc на fedora C++
C++ Вызов метода производного класса через обращение к методу базового класса
ООП. header файл. Функцию объекта вынести в файл класса C++
C++ Индексация массива класса, через объект этого класса
Подключение миши через USB порт C++
Обращение к элементам класса через [] C++
Как обраиться к функции класса через другую функцию класса (друга)? C++
Обращение к методам класса через указатель на экземпляр класса C++
C++ Пример класса с конструктором и деструктором, создание экземпляра класса через конструктор с параметрами
C++ Подключение класса, ошибки
C++ Подключение файлов через extern
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
 Аватар для 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
По идее в хедере должны быть одявления, а в спп-файле реализация... Конечно это все можно сделать в хедере, но....
Можешь почитать об этом тут. Но в принципе статей в инете куча, в т.ч. на гусском
ozzy_b
2 / 2 / 0
Регистрация: 02.10.2012
Сообщений: 169
12.03.2013, 15:52  [ТС]     Подключение сообственного класса через файл #6
все, пеперь все понял. спасибо)
Yandex
Объявления
12.03.2013, 15:52     Подключение сообственного класса через файл
Ответ Создать тему
Опции темы

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