Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
 
Forumhelp
1 / 1 / 0
Регистрация: 06.06.2013
Сообщений: 130
#1

Какой доступ имеют методы и объекты классов между собой - C++

15.01.2014, 10:54. Просмотров 484. Ответов 16
Метки нет (Все метки)

Например у нас есть диаграмма классов. Объясните какой доступ имеют методы и объекты классов между собой.
Как методы класса G могут получить доступ к методам класса A. Как объекты класса G могут получить доступ к объектам класса A.
0
Миниатюры
Какой доступ имеют методы и объекты классов между собой  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.01.2014, 10:54
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Какой доступ имеют методы и объекты классов между собой (C++):

Объекты классов, взаимодействуют между собой посредством передачи сообщений - C++
Помогите решить задачку,нужна в инст на комиссионный экзамен. Составить программу реализующую: 1)классы,которые могут содержать...

Функционирование классов и объектов между собой - C++
Доброго времени суток. Изучая учебник Дейтелов "C++. How to Program", наткнулся на весьма несложное упражнение для закрепления...

Сформировать набор классов связанных между собой виртуальным наследованием,описать каждый класс - C++
Сформировать набор классов связанных между собой виртуальным наследованием,описать каждый класс

Преобразования объектов классов в объекты других классов - C++
Задача типа обмен валют. Нужно конвертировать старый фунт стерлинг(фунт, шиллинг и пенсы) в доллары и обратно, по курсу 1 фунт = 50...

Вынести методы из классов Panel и PictureBox (явная реализация методов базовых абстрактных классов) - C++
Тема: Множественное наследование. Явная реализация методов базовых абстрактных классов. Как вынести методы из классов Panel и...

Классы. Объекты. Методы - C++
Доброго времени суток! Вот задачка. Я пока начинающий в этом деле, так что не очень понятно... Создать класс "дата". Данные класса...

16
ShadowFirst
55 / 48 / 1
Регистрация: 31.10.2013
Сообщений: 164
15.01.2014, 11:25 #2
Через параметры передаваемые в функциях. Вот примерная логика работы. Из класса А вызываем функцию класса С там в свою очередь класса D а там класса G, параметры передаваемые в функции будут соответствовать свойствам класса А.
1
Тамика
Котовчанин
918 / 462 / 145
Регистрация: 16.02.2010
Сообщений: 3,264
Записей в блоге: 28
15.01.2014, 11:28 #3
Возможно с помощью сеттеров и геттеров.
Функции могут возвращать значения переменных, которые есть приватными.
1
Forumhelp
1 / 1 / 0
Регистрация: 06.06.2013
Сообщений: 130
15.01.2014, 11:28  [ТС] #4
Цитата Сообщение от ShadowFirst Посмотреть сообщение
Через параметры передаваемые в функциях. Вот примерная логика работы. Из класса А вызываем функцию класса С там в свою очередь класса D а там класса G, параметры передаваемые в функции будут соответствовать свойствам класса А.
а спецификатор доступа private не помешает получить доступ к классам?
0
ShadowFirst
55 / 48 / 1
Регистрация: 31.10.2013
Сообщений: 164
15.01.2014, 11:38 #5
Нет, если вы передаете это как параметр в функции. Но смотрите если вам не нужно чтобы изменялось значение свойства класса А в классе G, то можно передавать копии этих параметров. А если хотите что бы изменялось можно передавать ссылки на эти свойства. Но можно передать копию свойств и вернуть результат который присвоится этому же свойству, то есть:
C++
1
A = doSomeThing(A);
То есть вы свойство отсылаете как параметр и результат к этому же свойству присваиваете
1
xoror
29 / 31 / 2
Регистрация: 15.12.2013
Сообщений: 147
15.01.2014, 11:48 #6
Цитата Сообщение от Forumhelp Посмотреть сообщение
Как методы класса G могут получить доступ к методам класса A.
C++
1
A::Func();
Добавлено через 1 минуту
Классе G содержит в себе переменные и методы класса A.

Добавлено через 1 минуту
Другими словами. Все, что есть в А, то есть и в G

Добавлено через 40 секунд
Потому что G - это наследник A
1
Forumhelp
1 / 1 / 0
Регистрация: 06.06.2013
Сообщений: 130
15.01.2014, 11:59  [ТС] #7
как я могу получить доступ от D к G, если там стоит private?
0
Тамика
Котовчанин
918 / 462 / 145
Регистрация: 16.02.2010
Сообщений: 3,264
Записей в блоге: 28
15.01.2014, 12:01 #8
Цитата Сообщение от Forumhelp Посмотреть сообщение
как я могу получить доступ от D к G, если там стоит private?
С помощью функций. Вы сможете получить доступ только к значениям свойств. А их получить функцией.
1
xoror
29 / 31 / 2
Регистрация: 15.12.2013
Сообщений: 147
15.01.2014, 12:06 #9
Цитата Сообщение от Forumhelp Посмотреть сообщение
как я могу получить доступ от D к G, если там стоит private?
Forumhelp, что означает private?
1
Forumhelp
1 / 1 / 0
Регистрация: 06.06.2013
Сообщений: 130
15.01.2014, 12:31  [ТС] #10
Цитата Сообщение от xoror Посмотреть сообщение
Forumhelp, что означает private?
Что базовый класс наследуется со спецификатором доступа private (данные которые были в базовом классе publiс и protected станут private в наследнике)
если я все правильно понял

Добавлено через 49 секунд
Цитата Сообщение от ShadowFirst Посмотреть сообщение
Нет, если вы передаете это как параметр в функции. Но смотрите если вам не нужно чтобы изменялось значение свойства класса А в классе G, то можно передавать копии этих параметров. А если хотите что бы изменялось можно передавать ссылки на эти свойства. Но можно передать копию свойств и вернуть результат который присвоится этому же свойству, то есть:
C++
1
A = doSomeThing(A);
То есть вы свойство отсылаете как параметр и результат к этому же свойству присваиваете
До конца не понял. Объясните логику. Совсем туплю:
Методы класса С имеют доступ к методам класса А( к тем методам которые находятся в public или protected).
В классе С методы, которые которые наследовались от класса А, в станут publiс и protected.
В Классе D методы которые были в С publiс и protected, станут protected.
А класс G может иметь доступ к D ??
0
xoror
29 / 31 / 2
Регистрация: 15.12.2013
Сообщений: 147
15.01.2014, 12:41 #11
Forumhelp, все, что находится после private, доступно только этому классу. больше никто туда не может зайти туда

Добавлено через 6 минут
Forumhelp, что такое наследование? готов поспоритьь что ты этого не знаешь
1
Forumhelp
1 / 1 / 0
Регистрация: 06.06.2013
Сообщений: 130
15.01.2014, 12:45  [ТС] #12
Когда производный класс наследуеет поля и методы базового класса
0
xoror
29 / 31 / 2
Регистрация: 15.12.2013
Сообщений: 147
15.01.2014, 12:52 #13
Forumhelp, Если в базовом классе поо=ля или методы имеют private то никто не может иметь к ниа доступ!!

Добавлено через 19 секунд
методы private

Добавлено через 23 секунды


Добавлено через 23 секунды
gjxbnfqnt

Добавлено через 3 минуты
Forumhelp, всё, что находится в классе A. Тоже самое находится и в классе G
Потому что клаасс G наследник
0
Forumhelp
1 / 1 / 0
Регистрация: 06.06.2013
Сообщений: 130
15.01.2014, 12:57  [ТС] #14
это понятно)) Вот и вопрос, если один класс B (например) наследовал методы другого класса А и они стали private в этом классе, то как класс С может наследовать методы класса А, если они в B стали private. И везде наследование со спец.дост. private. Простите, просто сложно доходит)
0
ShadowFirst
55 / 48 / 1
Регистрация: 31.10.2013
Сообщений: 164
15.01.2014, 15:28 #15
Объясню, если ответите на уточняющий вопрос, вы подразумевали своей диаграммой классов наследование или создание экземпляра другого класса в классе?

Добавлено через 3 минуты
Хотя из ответов я так понял речь идет все таки о наследовании, а я вам писал случай если в классе создается объект другого класса.
Если говорить о наследовании, то было уже отвечено что к private полям доступа нет у наследников, по этому их обычно делают protected.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.01.2014, 15:28
Привет! Вот еще темы с ответами:

Константные методы и объекты класса - C++
Это необходимость, или явная подстраховка того, что бы объект (константный) работал с себе подобными методами класса ?

Указатель на объекты и члены классов - C++
class AA { public: void Start( ); }; class BB { public: void Start( );

Файлы и объекты производных классов - C++
Вопрос следующий: имеется два класса, базовый и производный. В файл бинарно записывается объект производного класса через указатель на...

Использование классов в С++. Простые объекты. - C++
Задание: Описать объект, включающий заданные поля и методы. Написать программу, которая создает массив объектов и список объектов и...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru