![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
kuvshinka |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 386 Регистрация: 27.4.2008 Репутация: нет Всего: нет |
Есть класс A
также есть некие классы B, C... Вопрос: можно ли (если да, то подскажите пож-та на примере) сделать так, чтобы в классе В можно было бы пользоваться (компиляция без ошибок) методами и setValue, и getValue класса А, а в классе С — ТОЛЬКО методом getValue? то есть класс А - это некий контейнер данных, которые сохраняются в нем через функции аля setValue в одних классах (например класс В), а используются (и ТОЛЬКО) через метод аля getValue - в других (класс С) |
|||
|
||||
миг |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 158 Регистрация: 15.9.2008 Репутация: нет Всего: 1 |
https://msdn.microsoft.com/ru-ru/library/kktasw36.aspx
Используйте public и protected Это сообщение отредактировал(а) миг - 27.12.2016, 13:04 --------------------
Oaks may fall when reeds stand the storm. |
|||
|
||||
solowey |
|
|||
Новичок Профиль Группа: Участник Сообщений: 0 Регистрация: 24.11.2009 Репутация: нет Всего: нет |
В таком варианте подойдет???
Этот ответ добавлен с нового Винграда - http://vingrad.com |
|||
|
||||
solowey |
|
|||
Новичок Профиль Группа: Участник Сообщений: 0 Регистрация: 24.11.2009 Репутация: нет Всего: нет |
В таком варианте подойдет???
Этот ответ добавлен с нового Винграда - http://vingrad.com |
|||
|
||||
solowey |
|
|||
Новичок Профиль Группа: Участник Сообщений: 0 Регистрация: 24.11.2009 Репутация: нет Всего: нет |
В таком варианте подойдет???
Этот ответ добавлен с нового Винграда - http://vingrad.com |
|||
|
||||
solowey |
|
|||
Новичок Профиль Группа: Участник Сообщений: 0 Регистрация: 24.11.2009 Репутация: нет Всего: нет |
В таком варианте подойдет???
Этот ответ добавлен с нового Винграда - http://vingrad.com |
|||
|
||||
solowey |
|
|||
Новичок Профиль Группа: Участник Сообщений: 0 Регистрация: 24.11.2009 Репутация: нет Всего: нет |
В таком варианте подойдет???
Этот ответ добавлен с нового Винграда - http://vingrad.com |
|||
|
||||
миг |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 158 Регистрация: 15.9.2008 Репутация: нет Всего: 1 |
SetValue наверно нужно в protected поместить. И наследовать class C : private A
Это сообщение отредактировал(а) миг - 27.12.2016, 22:18 --------------------
Oaks may fall when reeds stand the storm. |
|||
|
||||
kuvshinka |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 386 Регистрация: 27.4.2008 Репутация: нет Всего: нет |
а у getValue какой должен быть уровень доступа в базовом классе А?
|
|||
|
||||
миг |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 158 Регистрация: 15.9.2008 Репутация: нет Всего: 1 |
kuvshinka, publlic конечно. ты ведь хотела, чтобы getvalue использовался во всех классах.
--------------------
Oaks may fall when reeds stand the storm. |
|||
|
||||
kuvshinka |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 386 Регистрация: 27.4.2008 Репутация: нет Всего: нет |
миг: не работает...
при наследовании
при использовании в классе С
вылетает ошибка void A::setValue(int) is protected |
||||
|
|||||
миг |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 158 Регистрация: 15.9.2008 Репутация: нет Всего: 1 |
kuvshinka, потому-что закрытый метод класса. Там всё работает. Можешь создать открытую функцию, которая будет вызывать закрытый метод класса.
--------------------
Oaks may fall when reeds stand the storm. |
|||
|
||||
kuvshinka |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 386 Регистрация: 27.4.2008 Репутация: нет Всего: нет |
А какой смысл "создать открытую функцию, которая будет вызывать закрытый метод класса"?
допустим:
получается ведь масло масляное...тогда я эту функцию setNewValue смогу и из любого другого класса © вызвать(и даже без наследования class C : private A)... objA.setNewValue(10); мне же надо иметь возможность из одного класса вызывать setNewValue (или setValue), а из другого класса - не иметь такой возможности (ошибка при сборке)... |
|||
|
||||
миг |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 158 Регистрация: 15.9.2008 Репутация: нет Всего: 1 |
kuvshinka, Вы имеете эту возможность. Из другого-класса думаю не получится вызвать эту функцию.
--------------------
Oaks may fall when reeds stand the storm. |
|||
|
||||
kuvshinka |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 386 Регистрация: 27.4.2008 Репутация: нет Всего: нет |
в том-то все и дело, что можно вызвать setNewValue из любого другого класса - она же public....проверено!
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |