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

C++ классы - C++

Восстановить пароль Регистрация
 
DJOGUREC
0 / 0 / 0
Регистрация: 27.10.2013
Сообщений: 11
27.10.2013, 16:02     C++ классы #1
Проблема : не работает "++plus" в "void ClassB::count()"
Есть вариант решить это так : поменять "private" на "protected" в обоих классах и из класса "ClassB" убрать "int plus" 22 линия. Но как решить эту проблему не убирая "int plus" из "ClassB"
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
#include <iostream>
#include <cstdlib>
using namespace std;
 
class ClassA
{
    public:
        ClassA(int);
        void print();
    private:
        int plus;
};
class ClassB: public ClassA
{
    public:
        ClassB(int,int);
        void print();
        void count();
    private:
        int minus;
        int plus;
};
ClassA::ClassA(int PLUS)
{
    plus=PLUS;      
}
void ClassA::print()
{
    cout << plus << endl;    
}
//////////////////////////////////////////////////////
ClassB::ClassB(int PLUS, int MINUS) : ClassA(PLUS)
{
    minus=MINUS;      
}
void ClassB::print()
{
    ClassA::print();
    cout << minus << endl;    
}
void ClassB::count()
{
    ++plus;
    --minus;
}
int main()
{
    ClassB b(5,5);
    b.print();  // ожидаем и получаем 5 и 5 
    
    b.count(); //  ++plus  --minus
    b.print(); //   ожидаем 6 и 4 , но получаем 5 и 4. Почему? объясните пожалуйста.
    
    system ("pause");
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
castaway
Эксперт С++
4848 / 2987 / 368
Регистрация: 10.11.2010
Сообщений: 11,028
Записей в блоге: 10
Завершенные тесты: 1
27.10.2013, 16:08     C++ классы #2
У тебя plus определен и в ClassA и в ClassB.
DJOGUREC
0 / 0 / 0
Регистрация: 27.10.2013
Сообщений: 11
27.10.2013, 16:11  [ТС]     C++ классы #3
Я понимаю но это не ответ на мой вопрос. Мне надо чтоб plus был в обоих классах.
castaway
Эксперт С++
4848 / 2987 / 368
Регистрация: 10.11.2010
Сообщений: 11,028
Записей в блоге: 10
Завершенные тесты: 1
27.10.2013, 16:14     C++ классы #4
Ты изменяешь ClassB :: plus, а выводишь ClassA :: plus. Так понятнее?
Цитата Сообщение от DJOGUREC Посмотреть сообщение
Мне надо чтоб plus был в обоих классах.
Надо - исправляй. И это ответ на твой вопрос.
DJOGUREC
0 / 0 / 0
Регистрация: 27.10.2013
Сообщений: 11
27.10.2013, 16:16  [ТС]     C++ классы #5
Спасибо! все ясно.
Yandex
Объявления
27.10.2013, 16:16     C++ классы
Ответ Создать тему
Опции темы

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