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

Есть класс A и класс B, класс B вложен в класс A и вложен в него, как классу B получить доступ к переменным класса A просто по имени? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Создать класс время с данными-членами часы, минуты, секунды http://www.cyberforum.ru/cpp-beginners/thread330022.html
отучилась на программиста уже год, но пока что как-то тяжко с заданиями, тем более с классами, не успели пройти их... помогите пожалуйста решить Создать класс время с данными-членами часы, минуты, секунды. Перегрузить операторы сложения, вычитания(подсчет количества секунд между временем), ввода и вывода. Создать функции-члены сложения времени с заданным количеством секунд, вычитания из времени...
C++ Как послать своё сообщение другому приложению? #define WM_MYMESSAGE 2000 void main() { HWND hWnd; hWnd = ::FindWindow(NULL,"MyApp"); ::SendMessage(hWnd,WM_MYMESSAGE,0,0); } http://www.cyberforum.ru/cpp-beginners/thread330016.html
C++ Класс "Студент", реализовать динамический список "Группа студентов"
реализовать динамический список " группа студентов". Узел: -группа -фамилия Функции списка: -добавление по алфавиту -удаление указанного -очистка списка -поиск студента -печать списка
Чтение из файла, запись в файл C++
Тут такая у меня проблема. 1) Не работает цикл в майне. Как его правильно организовать? 2) И, похоже, чтение из файла все-таки, неправильно организовано. 3) И оошшшень хотелось бы поиск в файле как-нить организовать Кто может, помогите или подскажите, пожалуйста) #include<iostream> #include<fstream> #include<iomanip>
C++ двойная буферизация http://www.cyberforum.ru/cpp-beginners/thread329972.html
Здравствуйте. Ребят не сочтите за труд, помогите разобраться. Проблема собственно вот в чём: Пишу тетрис, в окошке находится стакан с фигурами, а на фоне нужно чтобы была некая картинка. Сначала всё сделал с выводом прямо на экран, но столкнулся с миганием окна. Теперь пробую через двойную буферизацию, но, после показа первого расположения падающей фигурки экран совсем не меняется.:wall: Вот...
C++ абстрактный тип данных надо написать на С++... разработать абстрактный тип данных :двусвязный циклический список. атд должен обеспечивать выполнение следующих операций: 1)добавление элемента в список 2)удаление элемента из списка 3)редактирование элемента в списке 4)просмотр нескольких списков 5)объединение нескольких списков 6)определение количества элементов в списке написать демонстрационную программу с... подробнее

Показать сообщение отдельно
Bers
Заблокирован
05.07.2011, 23:27     Есть класс A и класс B, класс B вложен в класс A и вложен в него, как классу B получить доступ к переменным класса A просто по имени?
Цитата Сообщение от kravam Посмотреть сообщение
Я ба рад не использовать friend, но: класс B должен получить доступ к полям класса A. Всё. (Да, и если бы можно было сделать класс B производным от A, я бы сделал. Но нельзя- это между прочим.)
А Вашему умению компилить в уме я завидую, но иногда оно даёт сбой.
Есть правила, ставшие уже классическими для ООП. Описываются практически в любой книге (рекомендую Макконелла. Он здорово мазги прочищает).

Два из них гласят:

1. Все данные-члены класса должны быть закрыты ДЛЯ ВСЕХ других классов. Только класс-
владелец имеет право прямого доступа к своим данным-членам. Если отойти от этого правила,
это может привести к проблемам. (что за проблемы, и с чем связанно хорошо объясняет
Макконелл)

2. Программируйте в терминах интерфейса класса. Это значит, что все действия над объектом
класса производятся исключительно через интерфейс класса. Так, только так, и никак иначе.


А теперь объясните мне, на кой чорт ребёнку иметь прямой доступ к данным-членам родителя?
Почему ребёнок не может обратится к родителю через его интерфейс????

Замечание про компиляцию не вразумел.


Цитата Сообщение от kravam Посмотреть сообщение
И это... Родитель- ребёнок, я такую терминологию использую обычно если говорю об именно производных и родительских классх. Тут же ими и нге пахнет. Извините.
Это уже из области терминологии.

Лично я называю систему-полиморф "семейством", а её членов так и называю "члены семейства". Ну или "родственники одного семейства".

Производный класс при прямом наследовании - собственно наследником, или потомком
Базовый класс - предок.
(при этом предки и потомки тоже являются родственниками, но я никогда не называю их членами одного семейства, что бы не пустать с полиморфной системой).


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