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

Обращение к члену protected - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Определить количество строк, не содержащих ни одного нулевого элемента http://www.cyberforum.ru/cpp-beginners/thread1186442.html
Помогите написать программу,предмет просто не профильный Написать программу в соответствии с вариантом, выделив под массив динамически память. Обращаться к элементам массива необходимо используя указатель. Дана целочисленная прямоугольная матрица. Определить количество строк, не содержащих ни одного нулевого элемента; максимальное из чисел, встречающихся в заданной матрице более одного раза
C++ Методом Монте-Карло определить площадь заштрихованой фигуры Нарисовать линиями в Chart for (int i=0; i<=100; i++) { x=i; y=sqrt(10000-x*x); plot1->Points->AddXY(x, y); } // Рисуем вторую часть - http://www.cyberforum.ru/cpp-beginners/thread1186421.html
C++ Динамическое выделением памяти для массивов
Даны три массива вещественных чисел X(25), B(30), Y(25). Из исходных массивов сформировать массив К, элементы которого равны количеству положительных элементов в исходных массивах. Найти меньшее значение элемента и его номер в массиве B. Числа генерируются случайным образом в диапазоне: X: B: Y: Работа с массивами осуществляется только с динамическим выделением памяти. Программа...
C++ Сравнение элементов стеков
Даны два стека. Задача состоит в том, чтобы создать третий стек из элементов первого, которых нет во втором. Не могу найти ошибку, программа просто копирует первый стек. List* combination(List *MyList1, List *MyList2, List *MyList3,int &n1, int &n2,int &n3) { List *temp1=MyList1; List *temp2=MyList2; List *temp3=MyList3;
C++ Указатель на функцию http://www.cyberforum.ru/cpp-beginners/thread1186396.html
#include "stdafx.h" #include <clocale> #include <iostream> #include <conio.h> using std::cout; using std::cin; int comp(const void *a, const void *b) { return *(char*)a - *(char*)b; }
C++ Максимальный поток минимальной стоимости Вечер добрый, нашел программу работает, выдает как я понял максимальный поток и минимальную стоимость. Вопрос в следующем, как там матрица пропускных способностей задается? И если не сложно поясните код пожалуйста. #include <queue> #include <vector> #include <climits> #include <iostream> using namespace std; typedef long long ll; typedef pair<int, int> pii; подробнее

Показать сообщение отдельно
eXPonent
 Аватар для eXPonent
43 / 43 / 2
Регистрация: 21.05.2012
Сообщений: 727
24.05.2014, 07:45     Обращение к члену protected
Добрый день, помогите разобраться
Обращение к члену protected, сообщается ошибкой
Код класса:
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
147
148
149
150
151
152
#include <iostream>
#include <string>
#include <vector>
using namespace std;
 
struct FIO
{
    string surname;
    string name;
    string patronymic;
};
 
class student
{
    public:
        student()
        {
            cout << "Фамилия: ";
            cin >> initials.surname;
            cout << "Имя: ";
            cin >> initials.name;
            cout << "Отчество: ";
            cin >> initials.patronymic;
            cout << "Возраст: ";
            cin >> age;
            cout << "Курс: ";
            cin >> course;
            cout << "Успеваемость: ";
            cin >> GPA;
        };
        void print(bool _edit = false)
        {
            if(_edit) cout << "1) ";
            cout << "Фамилия: " << initials.surname << endl;
            if(_edit) cout << "2) ";
            cout << "Имя: " << initials.name << endl;
            if(_edit) cout << "3) ";
            cout << "Отчество: " << initials.patronymic << endl;
            if(_edit) cout << "4) ";
            cout << "Возраст: " << age << endl;
            if(_edit) cout << "5) ";
            cout << "Курс: " << course << endl;
            if(_edit) cout << "6) ";
            cout << "Успеваемость: " << GPA << endl;
        };
        void edit()
        {
            print(true);
            cout << "Редактировать поле номер: ";
            int N;
            cin >> N;
            switch (N)
            {
                case 1:
                    cout << "Фамилия: ";
                    cin >> initials.surname;
                break;
                case 2:
                    cout << "Имя: ";
                    cin >> initials.name;
                break;
                case 3:
                    cout << "Отчество: ";
                    cin >> initials.patronymic;
                break;
                case 4:
                    cout << "Возраст: ";
                    cin >> age;
                break;
                case 5:
                    cout << "Курс: ";
                    cin >> course;
                break;
                case 6:
                    cout << "Успеваемость: ";
                    cin >> GPA;
                break;
                default:
                    cout << "Ошибка редактирования!";
            };      
        };
 
    protected:
        double GPA;
 
    private:
        FIO initials;
        int age;
        int course;
};
 
class group_student: public student
{
    public:
        void push_back(student _stud)
        {
            stud.push_back(_stud);
        };
        void print()
        {
            for(int i = 0; i != stud.size(); i++)
            {
                number_student(i);
                stud[i].print();
            };                       
        };
        void edit(int i)
        {
            number_student(i-1);
            stud[i-1].edit();                   
        };
        void sort()
        {
            for(int i = 0; i != stud.size(); ++i) // i - номер текущего шага
            {
                int pos = i; 
                student _stud = stud[i];
                for(int j = i + 1; j != stud.size(); ++j) // цикл выбора max элемента
                    if (stud[j].GPA < _stud.GPA) 
                    {
                        pos = j; 
                        _stud = stud[j]; 
                    };
                stud[pos] = stud[i]; 
                stud[i] = _stud;
            };
        };
 
    private:
        vector<student> stud;
        inline void number_student(int i)
        {
            cout << "Студент №" << i << endl;
        };
};
 
void main()
{
    setlocale(LC_ALL,"Russian");
 
// Тест
    group_student A;
    for(int i = 0; i != 5; i++)
    {
        student stud;
        A.push_back(stud);
    };
    A.sort();
    A.print();
 
    system("pause");
};
Ошибки:
Кликните здесь для просмотра всего текста
ClCompile:
Lab№3.cpp
c:\documents and settings\artyr\рабочий стол\task№5\lab№3\lab№3.cpp(119): error C2248: student::GPA: невозможно обратиться к protected член, объявленному в классе "student"
c:\documents and settings\artyr\рабочий стол\task№5\lab№3\lab№3.cpp(84): см. объявление "student::GPA"
c:\documents and settings\artyr\рабочий стол\task№5\lab№3\lab№3.cpp(14): см. объявление "student"
c:\documents and settings\artyr\рабочий стол\task№5\lab№3\lab№3.cpp(119): error C2248: student::GPA: невозможно обратиться к protected член, объявленному в классе "student"
c:\documents and settings\artyr\рабочий стол\task№5\lab№3\lab№3.cpp(84): см. объявление "student::GPA"
c:\documents and settings\artyr\рабочий стол\task№5\lab№3\lab№3.cpp(14): см. объявление "student"

СБОЙ построения.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 23:45. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru