![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Неистово негодуэ
Пользователь
Регистрация: 11.09.2011
Сообщений: 61
|
![]()
Задача такова: есть базовый класс cBase, которую наследуют да класса: cFirst и cSecond. У классов cFirst и cSecond много объектов, но у каждой своры объектов должна быть одна прееменная, определяющая их количество: int Num.
Внимание, вопрос: как создать отдельные статические переменные Num для классов cFirst и cSecond, но чтобы к ним имел "доступ" cBase? Я хотел решить этот вопрос так, но, как оказалось, статичная прееменная, объявленная в cBase остается статичной(странно, не правда ли? =) ), и не наследуется. Код:
Как результат: прееопределение переменной, и это понятно. Но как мне ухитриться, чтобы Num был объявлен единожды(в идеале), и с ним можно было бы работать в cBase. Если бы эта прееменная была единственная в моем базовом классе, можно было бы решить проблему, объявив каждую свою переменную в своем классе, и работать с ними, передавая в аргументах, но этих переменных у меня много. Заранее спасибо за заранние ответы.
Жёстко негодую и тупю на всех.
![]() Последний раз редактировалось ACE Valery; 23.11.2012 в 02:06. |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 25.10.2011
Сообщений: 3,178
|
![]()
Странная постановка. Если есть 6 объектов класса cFirst и 8 объектов класса cSecond, то какое значение должен, по-Вашему, получить cBase, обратившись к Num?
|
![]() |
![]() |
![]() |
#3 |
Неистово негодуэ
Пользователь
Регистрация: 11.09.2011
Сообщений: 61
|
![]()
В том то и дело, мне нужно, чтобы для каждого класса создавалась своя статическая переменная, и я бы так и сделал, но прееменных много, классов тоже, хотел как то наследовать статический элемент, чтобы она была статической не для класса cBace, а для всех классов своя. Не обязательно, чтобы это все работало именно так. Главное, чтобы условие, что я описал, выполнялось.
Жёстко негодую и тупю на всех.
![]() |
![]() |
![]() |
![]() |
#4 | ||
Старожил
Регистрация: 25.10.2011
Сообщений: 3,178
|
![]() Цитата:
Цитата:
Обратите внимание, что без специальных мер такая переменная в классе cFirst будет считать количество объектов не только самого класса cFirst, но и всех его наследников. |
||
![]() |
![]() |
![]() |
#5 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,331
|
![]()
Статическеми переменными или методами не получится, раз CBase должен получать результаты о своих наследниках. Ума не приложу зачем это надо но это лечится виртуальным методом в CBase классе, который надо переопределить в каждом наследнике.
|
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 01.10.2008
Сообщений: 248
|
![]()
private const int Num
Контакты
skype, почта: bm@kwax.ru |
![]() |
![]() |
![]() |
#7 | ||
Старожил
Регистрация: 25.10.2011
Сообщений: 3,178
|
![]() Цитата:
Код:
Цитата:
|
||
![]() |
![]() |
![]() |
#8 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,065
|
![]()
В голову мне приходит только решение с шаблонами. Вспоминаем, что в плюсах для каждого из вариантов шаблонов по сути создаётся отдельный класс, а следовательно и static'и должны создаваться отдельные.
Код:
Код:
Код:
Последний раз редактировалось pu4koff; 23.11.2012 в 14:01. |
![]() |
![]() |
![]() |
#9 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,331
|
![]()
А теперь внимание вопрос - где здесь CBase и как он получает доступк этим данным? Вы бы просто сказали, что вам нужен счетчик объектов каждого типа, а то формулировочка у вас... а кстати, если мы унаследуем A или B то результат уже будет несколько не тот.
|
![]() |
![]() |
![]() |
#10 |
Форумчанин
Регистрация: 01.10.2008
Сообщений: 248
|
![]()
какое практическое применение сей задачи?
Контакты
skype, почта: bm@kwax.ru |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Проблема с взаимодействием динамической и статической памяти - обращение к статической переменной | Comst95 | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 03.01.2012 18:46 |
адрес статической переменной | EUGY | Общие вопросы C/C++ | 10 | 16.08.2011 23:14 |
Ресурсы в статической библиотеке. | EUGY | Общие вопросы C/C++ | 0 | 09.07.2011 17:35 |
Списки в статической памяти. | *Натали* | Помощь студентам | 5 | 14.04.2010 11:48 |
объем статической памяти | Juffin | Общие вопросы Delphi | 1 | 10.11.2009 16:07 |