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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.70
Eugen-S
 Аватар для Eugen-S
8 / 8 / 0
Регистрация: 06.11.2011
Сообщений: 122
#1

Закрытое наследование - C++

16.04.2012, 12:18. Просмотров 1281. Ответов 4
Метки нет (Все метки)

Добрый день, форум
Помогите разобраться:

Базовый класс vector и от него наследую допустим "очередь" , и.. когда хочу в очереди создать переменную интовую, пишет :

'queue::how' : only static const integral data members can be initialized within a class


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class vector
{
private:
 int a,b;
public:
int get();
int set();
}
 
class queue:private vector
{
public:
int get();
int set();
 
private:
int how=0;  //Вот тут подчеркивает знак присвоения и пишет ошибку которую написал выше( 
 
}
пробовал добавлять переменную в разных местах, не понимаю в чем проблема(
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.04.2012, 12:18     Закрытое наследование
Посмотрите здесь:

C++ наследование
C++ Закрытое наследование
C++ закрытое наследование
Как используя закрытое наследование использовать 2 объекта базового класса? C++
C++ Закрытое хеширование с двойным опробованием
C++ Закрытое наследование. Вывод строки
Вместо включения используйте закрытое наследование C++
C++ Открытое и закрытое хеширование
Пояснить, почему в примере не рекомендуется использовать закрытое наследование C++
Написать определение класса leverage, включающего одно закрытое поле типа int с именем crowbar и одним открыты C++
Закрытое наследование, как добраться до функции? C++
C++ Виртуальные базовые классы/закрытое наследование

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
panicwassano
591 / 559 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
16.04.2012, 12:21     Закрытое наследование #2
Цитата Сообщение от Eugen-S Посмотреть сообщение
int how=0;
правильно пишет, он вам написал, перевожу
в классе можно инициализировать только константные статические члены
делайте инициализацию в конструкторе. Вам нужно почитать про классы, наследование тут непричем
Eugen-S
 Аватар для Eugen-S
8 / 8 / 0
Регистрация: 06.11.2011
Сообщений: 122
16.04.2012, 12:48  [ТС]     Закрытое наследование #3
блин, точно! спасибо!)
а еще вот..

я сделал наследование, и в производном классе у меня:

C++
1
2
3
4
    int getsize()
    {
        return vector::getsize();
    }
это правильно? ну.. работает всё, но просто интересно, правильно ли работаю с методами.

Добавлено через 5 минут
ну вот, и опять проблема.. не могу разобраться(

сделал в конструкторе переменную how=0, но в методах этого класса не могу её менять.. через this-> - how не видит... и не знаю что делать вариант - написать метод который будет работать с этой переменной? или так не пойдет?
panicwassano
591 / 559 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
16.04.2012, 13:05     Закрытое наследование #4
Цитата Сообщение от Eugen-S Посмотреть сообщение
сделал в конструкторе переменную how=0
после выхода из конструктора переменная уничтожается, может стоит ее сделать членом класса?
Eugen-S
 Аватар для Eugen-S
8 / 8 / 0
Регистрация: 06.11.2011
Сообщений: 122
16.04.2012, 13:23  [ТС]     Закрытое наследование #5
ну так.. у меня это и не получалось сделать( изначально...

Добавлено через 2 минуты
по плану моему, в классе нужна переменная, и при вызове метода "гет" он будет делать how++) но почему-то не хочет добавляться она в класс(

Добавлено через 4 минуты
блин, всё, извиняюсь. Видимо просто не проснулся, понял что туплю)) сделал уже))
Yandex
Объявления
16.04.2012, 13:23     Закрытое наследование
Ответ Создать тему
Опции темы

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