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

Ромбовидное наследование. Конструктор внука. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Подскажите пожалуйста как привязать ListBox и WebBrowser в С++ http://www.cyberforum.ru/cpp-beginners/thread546944.html
Подскажите пожалуйста как привязать ListBox и WebBrowser в С++, т.е. должны отображаться HTML страницы на WebBrowser при нажатии на пункты из ListBox.
C++ Система линейных уравнений методом Ньютона Система линейных уравнений методом Ньютона x4-3x-20=0 (x>0) http://www.cyberforum.ru/cpp-beginners/thread546933.html
C++ Коментарии к Коду
заранее спасибо #include<conio.h> #include<iostream.h> #include<stdio.h> #include<stdlib.h> main() {int A,i,j,k=0,n,max,max1,S=0; randomize(); do {cout<<"n=";cin>>n;} while(n>33||n<1);
C++ Замена 1 символа на несколько
Доброго времени суток. Помогите доделать задачу. Задача: Преобразовать строку, содержащую выражение на Си с операциями (=,==,!=,a+=,a-=, где a – обозначает идентификатор), в строку, содержащую эти...
C++ Вычислить сумму и число элементов, значения которых находятся между половиной значения максимума и нулём http://www.cyberforum.ru/cpp-beginners/thread546894.html
1. Вычислить сумму и кол-во элементов значения которые нахалдяться между половиной значения максимума и нулём 2. Создать одномерный массив, из 10-тков значений элементов каждой области (пришлите...
C++ Стеки, очереди Здравствуйте. Прошу помочь с решением следующей задачи: Используя очередь, решить задачу. TYPE имя = (Анна,..., Яков); дети = АRRAY OF BOOLEAN; потомки = FILE OF имя; Считая заданным имя И и... подробнее

Показать сообщение отдельно
Nick Alte
Эксперт С++
1637 / 1009 / 119
Регистрация: 27.09.2009
Сообщений: 1,945
Завершенные тесты: 1
15.04.2012, 09:37
Цитата Сообщение от taras atavin Посмотреть сообщение
Но стоит ли учитывать все отношения в модели?
Разумеется, в модели стоит учитывать только те отношения, которые важны для решения поставленной задачи.

Цитата Сообщение от taras atavin Посмотреть сообщение
Студент чаще всего не преподаёт, то есть не является преподавателем, а преподаватель чаще всего не является студентом. Опять наследование исключено.
Это совершенно справедливо. В данном случае гораздо корректнее выделить "обучаемого" и "обучающего" в отдельные классы-примеси, и наследовать всю троицу от "персоны", добавляя нужный набор свойств:
C++
1
2
3
4
5
6
7
class Person {public: explicit Person(const std::string& name);};
class Educable {public: void BeLearned();};
class Educator {public: void Educate(Educable& student);};
 
class Student: public Person, public Educable {/*...*/};
class Teacher: public Person, public Educator {/*...*/};
class Postgraduate: public Person, public Educable, public Educator {};
Так это выглядит в простейшем виде. В более реальных задачах мы скорее всего реализуем динамически изменяющийся набор обязанностей у персоны: студент может со временем стать аспирантом, а аспирант - преподавателем.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru