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

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

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

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

12.03.2013, 15:25. Просмотров 245. Ответов 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();
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.03.2013, 15:25
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Подключение сообственного класса через файл (C++):

Как обраиться к функции класса через другую функцию класса (друга)? - C++
Пример кода: #include &lt;iostream&gt; using namespace std; class Sasha; class Petya { public: friend class Sasha; ...

Вызов метода производного класса через обращение к методу базового класса - C++
Добрый день. Изучаю основы ООП, наткнулся на проблему. Если создавать классы внутри main.cpp, то всё нормально. Если же создавать в...

Пример класса с конструктором и деструктором, создание экземпляра класса через конструктор с параметрами - C++
Привести пример класса с конструктором и деструктором, созданием экземпляра класса с помощью конструктора с параметрами.

Обращение к методам класса через указатель на экземпляр класса - C++
Добрый день. Не могу осилить проблему: Описан абстрактный класс. Описаны наследники этого класса уже без абстрактности. Описан...

Индексация массива класса, через объект этого класса - C++
class A{ char c;//? - размер массива public: A(int C){c;} }; int main(){ A a(5);//вносим размер массива getch(); ...

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

5
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;
}
1
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();
}
1
ozzy_b
2 / 2 / 0
Регистрация: 02.10.2012
Сообщений: 169
12.03.2013, 15:45  [ТС] #4
то в .h я просто копирую свой класс полностю(ничего неизменяя) и дописую #indef... а в .cpp что я делать должен? чтото неочень я понял етот ход
0
srg_btl
34 / 34 / 2
Регистрация: 21.02.2013
Сообщений: 90
12.03.2013, 15:52 #5
По идее в хедере должны быть одявления, а в спп-файле реализация... Конечно это все можно сделать в хедере, но....
Можешь почитать об этом тут. Но в принципе статей в инете куча, в т.ч. на гусском
1
ozzy_b
2 / 2 / 0
Регистрация: 02.10.2012
Сообщений: 169
12.03.2013, 15:52  [ТС] #6
все, пеперь все понял. спасибо)
0
12.03.2013, 15:52
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.03.2013, 15:52
Привет! Вот еще темы с ответами:

ООП. 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;

Через аргументы командной строки скопировать файл в файл - C++
Объясните, пожалуйста, как через аргументы командной строки скопировать файл в файл?


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

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

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