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

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

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

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

18.11.2011, 23:14. Просмотров 359. Ответов 4
Метки нет (Все метки)

Надо получить доступ к методам класса "А" из экземпляра другого класса, который объявлен внутри класса А. Код в студию :
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 выход ли ?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.11.2011, 23:14
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Получение доступа к классу "свыше". (C++):

Необработанное исключение в "0x775e15de" в "laba3.exe": 0xC0000005: Нарушение прав доступа при чтении "0xfdfdfdf9". - C++
вылезает ошибка Необработанное исключение в "0x775e15de" в "laba3.exe": 0xC0000005: Нарушение прав доступа при чтении "0xfdfdfdf9". ...

Необработанное исключение в "0x00412b4a" в "kursovik.exe": 0xC0000005: Нарушение прав доступа при чтении "0x00000004". - C++
Программа компилируется нормально но потом на строчке MoveToEx(hdc,Mas.a]->x*20,Mas.a]->y*20,0); выдаёт ошибку Помогите пожалуйста...

Необработанное исключение в "0x01082855" в "sort.exe": 0xC0000005: Нарушение прав доступа при записи "0xcccccccc" - C++
Всем привет! помогите мне понять в чём дело. написал программу: #include "stdafx.h" #include <ctime> #include <iostream> #include...

Необработанное исключение в "0x013f2b22" в "123.exe": 0xC0000005: Нарушение прав доступа при записи "0xfdfdfdfd" - C++
Вот функция для удаления столбца: #pragma once #include <iostream> using namespace std; int **DeleteIndexCol(int **ar,int s1,int...

Необработанное исключение в "0x778e15de" в "dir-3.exe": 0xC0000005: Нарушение прав доступа при чтении "0x00000000" - C++
#include <windows.h> #include <d3d9.h> LRESULT __stdcall WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam); struct...

Необработанное исключение в "0x00414558" в "467.exe": 0xC0000005: Нарушение прав доступа при чтении "0xabababbb" - C++
При выполнении этого кода #include <iostream> #include<conio.h> using namespace std; int main () { int x; unsigned int...

4
Bers
Заблокирован
19.11.2011, 03:24 #2
во-первых, у вас утечка памяти. в классе Group
во-вторых, нарушение инкапсуляции класса Group
в-третьих, нарушение инварианта класса Group

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

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

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

Добавлено через 1 минуту
хотя вообще.. может это я туплю. Тело диструктора то не показанно
0
KBAC
1 / 1 / 0
Регистрация: 10.05.2010
Сообщений: 72
19.11.2011, 15:33  [ТС] #5
Тело действительно в другом файле описано.
0
19.11.2011, 15:33
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.11.2011, 15:33
Привет! Вот еще темы с ответами:

Необработанное исключение в "0x76f015de" в "контрольная 1 задача 2.exe": 0xC0000005: Нарушение прав доступа при чтении "0x334e2c64" - C++
доброго времени суток. Необработанное исключение в "0x76f015de" в "контрольная 1 задача 2.exe": 0xC0000005: Нарушение прав доступа при...

Необработанное исключение в "0x1027c9c7 (msvcr100d.dll)" в "gh.exe": 0xC0000005: Нарушение прав доступа при чтении "0xfeeefeee". - C++
// gh.cpp: определяет точку входа для консольного приложения. // #include "stdafx.h" #include "iostream" #include "conio.h" ...

Необработанное исключение в "0x0fc1d484 (msvcr100d.dll)" в "1.exe": 0xC0000005: Нарушение прав доступа при чтении "0x00aee0af" - C++
помогите разобраться в чем ошибка? необходимо, чтобы ввод массива осуществлялся с клавиатуры построчно #include <stdio.h> ...

Необработанное исключение в "0x54a2d2e9 (msvcr100d.dll)" в "3.exe": 0xC0000005: Нарушение прав доступа при записи "0xcccccccc". - C++
#include<iostream> #include<conio.h> #include<string> #include<stdlib.h> using namespace std; class Goods { char* name; ...


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

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

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