Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Общие вопросы .NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.10.2015, 15:08   #1
RAFA91
Заблокирован
 
Регистрация: 06.02.2011
Сообщений: 1,999
По умолчанию Множественное наследование

Добрый день !

Написал такой код и получил шыш.

Код:
ref class A {};
ref class C {};
ref class D {};

ref class B :  A,C,D {};
а так вроде нет

Код:
interface class A {};
interface class C {};
interface class D {};

ref class B :  A,C,D {};
в чем тогда преимущество interface по сравнению с множественным наследованием если для интерфейса незя создать обьект ?

интерфейс что абстрактный класс ?
RAFA91 вне форума Ответить с цитированием
Старый 02.10.2015, 15:11   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

интерфейс это интерфейс.
просто описание методов/свойств/событий, который должен реализовать тот кто утверждает что он реализовал интерфейс.

множественного наследования в дотнете нет.(интерфейс не класс, от него не наследуются)

чистых интерфейсов в С++ нет, там аналог это чисто абстрактный класс+множественное наследование.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 02.10.2015, 15:15   #3
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Ну немного сложнее прострелить себе ногу увлекшись наследованием от всего подряд.

Цитата:
интерфейс что абстрактный класс ?
нет
http://lmgtfy.com/?q=.net+interface+...ass+difference
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 02.10.2015, 15:30   #4
RAFA91
Заблокирован
 
Регистрация: 06.02.2011
Сообщений: 1,999
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
ин(интерфейс не класс, от него не наследуются)

.
а это что тогда ?

Код:
ref class B :  A,C,D {};
Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
и
чистых интерфейсов в С++ нет, там аналог это чисто абстрактный класс+множественное наследование.
я в курсе что в чистом с++ нету interface а есть абстрактный класс
RAFA91 вне форума Ответить с цитированием
Старый 02.10.2015, 15:40   #5
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

синтаксис наследования не всегда означает наследование.

в случае интерфейса это означает что класс обязуется реализовать интерфейс.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 02.10.2015, 15:42   #6
RAFA91
Заблокирован
 
Регистрация: 06.02.2011
Сообщений: 1,999
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
синтаксис наследования не всегда означает наследование.

в случае интерфейса это означает что класс обязуется реализовать интерфейс.
те функции которые имеет интерфейс должны быть также

в классе ?
RAFA91 вне форума Ответить с цитированием
Старый 02.10.2015, 16:00   #7
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

вы обязаны их реализовать.

в этом и смысл интерфейса.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 02.10.2015, 16:21   #8
RAFA91
Заблокирован
 
Регистрация: 06.02.2011
Сообщений: 1,999
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
вы обязаны их реализовать.

в этом и смысл интерфейса.

а если не реализую то класс будет абстрактным ?
RAFA91 вне форума Ответить с цитированием
Старый 02.10.2015, 16:41   #9
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

В C# надо явно указывать, что класс абстрактный. Не знаю насчет C++/CLI
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 03.10.2015, 11:43   #10
RAFA91
Заблокирован
 
Регистрация: 06.02.2011
Сообщений: 1,999
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
В C# надо явно указывать, что класс абстрактный. Не знаю насчет C++/CLI
в C++/CLI так же как и в чистом с++ наличие чистой функции делает

класс абстрактным.

но при желании можно и явно указать что класс абстрактный

одно лишь отличие от чистого с++ в том , что нельзя реализовать метод чистой функции.
RAFA91 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Множественное наследование midiss Visual C++ 2 31.05.2013 12:52
[с++] Множественное наследование huichos Общие вопросы C/C++ 3 16.12.2011 18:25
Множественное наследование Jugger Помощь студентам 2 09.12.2011 20:23
Множественное наследование liza kalueva Общие вопросы C/C++ 2 10.03.2010 01:57