Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Показать сообщение отдельно
iga7013
1 / 1 / 0
Регистрация: 02.06.2013
Сообщений: 38
21.01.2014, 22:25  [ТС] 0

Подключение к main.cpp заголовочных файлов с классами

21.01.2014, 22:25. Просмотров 580. Ответов 5
Метки (Все метки)

Ответ

Цитата Сообщение от alsav22 Посмотреть сообщение
Какое отношение первый класс имеет ко второму?
Первый пост, это работающая программа, но класс описан внутри main.cpp и его поля со спецификатором доступа "public"
В третьем посте, этот тот же класс, только уже находится в файле student.h и с в ручную прописанным конструктором и функциями доступа к закрытым полям (private...)


сейчас все выглядит вот так:

source.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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
#include <iostream>
#include <string>
#include <fstream>
#include <conio.h>
#include "student.h"
using namespace std;
void getStudentsFaculty (student ,int, string);
void getListStudents (student,int);
void getStudentsAfterYear( student , int , int );
const int N = 20;
 
void getStudentsFaculty( student *a, int n, string fac )
{
    for( int index = 0; index < n; ++index )
        if ( a[ index ].faculty == fac )
            cout << a[ index ].name << endl;
}
 
void getListStudents( student *a, int n )
{
for( int i = 0; i < n - 1; ++i )
for( int j = i + 1; j < n; ++j )
if ( a[ i ].faculty > a[ j ].faculty )
{
Student temp = a[ i ];
a[ i ] = a[ j ];
a[ j ] = temp;
}
for( int i = 0; i < n; ++i )
{
if ( i == 0 || ( i > 0 && a[ i ].faculty != a[ i - 1 ].faculty ) )
cout << a[ i ].faculty << " : " << endl;
cout << "\t" << a[ i ].name << endl;
}
cout << "\n=======================================\n" << endl;
 
for( int i = 0; i < n - 1; ++i )
for( int j = i + 1; j < n; ++j )
if ( a[ i ].course > a[ j ].course )
{
Student temp = a[ i ];
a[ i ] = a[ j ];
a[ j ] = temp;
}
for( int i = 0; i < n; ++i )
{
if ( i == 0 || ( i > 0 && a[ i ].course != a[ i - 1 ].course ) )
cout << a[ i ].course << " : " << endl;
cout << "\t" << a[ i ].name << endl;
}
}
 
void getStudentsAfterYear( student *a, int n, int y)
{
    int count = 0;
    for( int index = 0; index < n; ++index )
        if ( a[ index ].year > y )
        {
            ++count;
            cout << a[ index ].name << endl;
        }       
        if ( !count )
        cout << "Are absent!" << endl;
}
 
int main()
{
    student arr[ N ];
 
    int size;
    cout << "Size : ";
    cin >> size;
 
    for( int i = 0; i < size; ++i )
    {
        cout << "Name: ";
        cin >> arr[ i ].name;
        cout << "Year: ";
        cin >> arr[ i ].year;
        cout << "Address: ";
        cin >> arr[ i ].address;
        cout << "Telephone: ";
        cin >> arr[ i ].telephone;
        cout << "Faculty: ";
        cin >> arr[ i ].faculty;
        cout << "Course: ";
        cin >> arr[ i ].course;
        cout << "==============================" << endl;
    }
 
    string fac;
    cout << "Faculty: ";
    cin >> fac;
 
    getStudentsFaculty( arr, size, fac );
 
    getListStudents( arr, size );
 
    int year;
    cout << "Year: ";
    cin >> year;
    getStudentsAfterYear( arr, size, year );
    _getch();
    return 0;
}

student.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
#pragma once
#include <string>
class student
{
private:
    string name;
    int year;
    string address;
    string telephone;
    string faculty;
    int course;
public:
    student(){};
    ~student(){};
    void set_name(string);
    string get_name();
    void set_year(int);
    int get_year();
    void set_address(string);
    string get_address();
    void set_telephone(string);
    string get_telephone();
    void set_faculty(string);
    string get_faculty();
    void set_course(int);
    int get_course();
};

student.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
#include "student.h"
#include <iostream>
#include <string>
using namespace std;
void student::set_name(string p_name)
{
    name=p_name;
}
string student::get_name()
{
    return name;
}
//----------------------------------------
void student::set_year(int p_year)
{
    year=p_year;
}
int student::get_year()
{
    return year;
}
//----------------------------------------
void student::set_address(string p_address)
{
    address=p_address;
}
string student::get_address()
{
    return address;
}
//----------------------------------------
void student::set_telephone(string p_telephone)
{
    telephone=p_telephone;
}
string student::get_telephone()
{
    return telephone;
}
//----------------------------------------
void student::set_faculty(string p_faculty)
{
    faculty=p_faculty;
}
string student::get_faculty()
{
    return faculty;
}
//----------------------------------------
void student::set_course(int p_course)
{
    course=p_course;
}
int student::get_course()
{
    return course;
}
//----------------------------------------


Отношения никакого, это один и тот же класс, просто записан дважды.

Вернуться к обсуждению:
Подключение к main.cpp заголовочных файлов с классами
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.01.2014, 22:25
Готовые ответы и решения:

Подключение файлов main.cpp some.cpp some.h
Всем привет, программа разделенна на три файла poly.cpp main.cpp poly.h Кто мог...

Подключение заголовочных файлов
Здравствуйте! Подскажите, можно ли сделать так, чтобы при создании нового...

Подключение заголовочных файлов
Имею два файла Large Factorial.h #include &lt;sstream&gt; #include &lt;iostream&gt;...

Подключение заголовочных файлов
Итересует меня вопрос : нужно ли при компиляции программ оставлять только...

Подключение заголовочных файлов
Здравствуйте. Возникают ошибки при компиляции проекта: 1. Указывает на...

5
Другие темы раздела
C++ Найти цифровыми число, квадрат которого равен пятой степени суммы чисел, определенных его цифрами. Из цифр найденного числа образовать множество А http://www.cyberforum.ru/cpp-beginners/thread1077787.html
Найти цифровыми число, квадрат которого равен пятой степени суммы чисел, определенных его цифрами. Из цифр найденного числа образовать множество А.
C++ Нахождение второго максимума Дан целочисленный массив из 40 элементов, элементы могут принимать произвольные значения. Напишите алгоритм, который находит и выводит значение второго максимума (элемента, который в отсортированном... http://www.cyberforum.ru/cpp-beginners/thread1077784.html
Четные элименты в массиве C++
Заранее прошу прощения т.к. тема уже была созданна, но помощи так и не получил. Мне нужно чтоб массив выводил четные элименты, не индексы, элименты массива вот в такой форме щас дам листинг...
C++ Идентификатор не определен
Писали ее на microsoft visual studio2013. выдает 7 ошибок на 74, 125, 136, 149, 159, 170 и 177 и везде однотипная ошибка "идентификатор не определен" Как их исправить??? Вот программа: ...
C++ В зависимости от времени года "весна", "лето", "осень", "зима" определить погоду "тепло", "жарко", "холодно", "очень холодно" http://www.cyberforum.ru/cpp-beginners/thread1077746.html
В зависимости от времени года "весна", "лето", "осень", "зима" определить погоду "тепло", "жарко", "холодно", "очень холодно". Я так понимаю нужно сделать через switch
C++ Дано натуральное число n. Вычислить sqrt(2+ sqrt(5 + sqrt(7...)) Дано натуральное число n.Вычислить sqrt(2+ sqrt(5 + sqrt(7...)). Под корнями располагается n первых простых чисел. Написал как находить простые числа, но не пойму как вычислить сумму из корней.... подробнее
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru