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

Получение доступа к классу "свыше". - C++

Восстановить пароль Регистрация
 
KBAC
1 / 1 / 0
Регистрация: 10.05.2010
Сообщений: 72
18.11.2011, 23:14     Получение доступа к классу "свыше". #1
Надо получить доступ к методам класса "А" из экземпляра другого класса, который объявлен внутри класса А. Код в студию :
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class Group 
{
    Tutor *groupTutor;
    
public:
    Group(string tutorName = "Elena", string tutorSurname = "Stanislavna", unsigned int k = 2) : kolDezh(k){
        groupTutor = new Tutor(tutorName, tutorSurname);
    }
    ~Group();
 
    inline Tutor* getTutor() {return groupTutor;}
 
 
    void changeBusiness ();
    
};
Из groupTutor должен вызываться метод changeBusiness(); Конечно можно сделать метод в Тutor , затем передавать туда ссылку на группу. Но это мне кажется некрасивым.
А вот если создать метод без аргументов мне кажется выходом, но не понимаю как можно построить связь между двумя классами.

Добавлено через 45 минут
Создание указателя на родителя (Group ) в Tutor выход ли ?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.11.2011, 23:14     Получение доступа к классу "свыше".
Посмотрите здесь:

как сделать чтобы дружественная функция классу принимал ааргумент типа "класс" который при создании ничем не инициализирован? C++
C++ Приведение LPVOID к классу "непостоянной" величины
Что означает "нарушение доступа (ошибка сегментации)" C++
Стратегия "получение ресурса есть инициализация" C++
"Нарушение прав доступа при чтении "0x00000000"" C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Bers
Заблокирован
19.11.2011, 03:24     Получение доступа к классу "свыше". #2
во-первых, у вас утечка памяти. в классе Group
во-вторых, нарушение инкапсуляции класса Group
в-третьих, нарушение инварианта класса Group

в-четвертых косяк архитектуры. Частное не должно контролировать целое. Оно даже знать не должно о существовании целого.

Но если очень сильно нужно - можно записать в Tutor знание о своём хозяине Group .
Тогда объекты Tutor смогут в определённых ситуациях запускать методы своего хозяина.
KBAC
1 / 1 / 0
Регистрация: 10.05.2010
Сообщений: 72
19.11.2011, 11:41  [ТС]     Получение доступа к классу "свыше". #3
А можно поподробнее про утечку?
Не понятно тогда как сделать правильно, по канону, такой случай : есть группа к ней прикреплен воспитатель и дети в группе. Воспитатель имеет полную власть над детьми (которую он осуществляет через методы группы).
Bers
Заблокирован
19.11.2011, 14:10     Получение доступа к классу "свыше". #4
Цитата Сообщение от KBAC Посмотреть сообщение
groupTutor = new Tutor(tutorName, tutorSurname);
Цитата Сообщение от KBAC Посмотреть сообщение
~Group();

Кто будит освобождать память?

Добавлено через 1 минуту
хотя вообще.. может это я туплю. Тело диструктора то не показанно
KBAC
1 / 1 / 0
Регистрация: 10.05.2010
Сообщений: 72
19.11.2011, 15:33  [ТС]     Получение доступа к классу "свыше". #5
Тело действительно в другом файле описано.
Yandex
Объявления
19.11.2011, 15:33     Получение доступа к классу "свыше".
Ответ Создать тему
Опции темы

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