2014-12-11 2 views
0

Я изучаю окончательное программирование (C++) и перебираю некоторые из наших прошлых тестов. Один вопрос требует описать отношения as-a. Я понимаю отношения is-a и has-a, но не может найти никакой информации об отношениях. Может ли кто-нибудь дать мне краткое объяснение этому?As-a отношения в C++

+0

(есть-а) минус час? (is-a) замените 'i' на 'a'. Я иду за то, что это опечатка. Обратите внимание, что иногда имеет отношение - отношение описывается обратно как часть отношения. –

+0

Я мог бы составить полезный шаблон под названием 'as-a' (в качестве примера, 'as-a' iterable - это класс, который поддерживает итерацию с диапазоном: это не 'is-a' и 'has-a', поскольку я можно добавить эту поддержку, не изменяя, что такое объект.) (или, может быть, наличие адаптеров подразумевает «как-а»). Но я не слышал, чтобы это использовалось. – Yakk

+0

Я, наконец, нашел его в своих заметках, по какой-то причине я не перечислил его с другими страницами, охватывающими обзор для этого экзамена. Вот как мой профессор описал это «конец иерархии, останавливает ее от дальнейшего». –

ответ

2

Нет такой вещи. Скорее всего, вопрос содержит типографскую ошибку. Проконсультируйтесь со своим автором, который, возможно, также придумал термин для вашего курса, и в этом случае никто здесь не может точно знать, что он подразумевает.

+0

Наконец-то я нашел его в своих заметках, вот что мой профессор назвал его «концом иерархии, останавливает его от существующего». –

+0

Будь то, хотя ... «Иерархия наследования» означает «Является ли А» не «Имеет А». – NoChance

1

Смотрите эту статью в Википедии о имеет отношение, которое описывает различные типы отношений http://en.wikipedia.org/wiki/Has-a

только два, которые я когда-либо слышал, являются является (подтипы или наследование) и имеет (состав или используется как член класса).

Одной из возможностей может быть идея использования композиции, имеющая отношения, а затем поддержка интерфейса, который является подмножеством элемента или компонента, из которого состоит класс или объект. Это также может быть сделано через частное наследование, а затем дублирование выбранных частей интерфейса базового класса. См. Этот файл stackoverflow Private inheritance VS composition : when to use which?

И посмотрите, как этот потоковый поток об отношениях HAS-A и IS-A HAS-A, IS-A terminology in object oriented language, который также упоминает агрегацию, а также состав и наследование.

И увидеть эту статью в Википедии о составе по сравнению с наследованием http://en.wikipedia.org/wiki/Composition_over_inheritance

0

Скорее всего «как» это опечатка, но рассматривается как описательный термин он может относиться к отношениям вы имеете в, например, to_string, которую вы можете переименовать как: as_string.

Однако, в то время, когда я все еще не прочь читать и писать слишком много, не так много вопросов, как я сейчас, я называл эту операцию string_from. Де-подчеркивая идею фиксированной взаимосвязи между двумя наборами значений. И подчеркивая одностороннюю природу обращения.

0

Отношение «Has-A» описывает сдерживание класса внутри другого и/или состав класса из 1 или более других классов. Он отличается от «Is-A». Для получения более подробной информации, пожалуйста, обратитесь к (среди прочих):

Object-oriented Programming: Using C++ for Engineering and Technology.

Effective C++ Digital Collection: 140 Ways to Improve Your Programming.

Смежные вопросы