Вопросы с тегом «inheritance»

97
Как виртуальное наследование решает «ромбовидную» (множественное наследование) неоднозначность?

class A { public: void eat(){ cout<<"A";} }; class B: virtual public A { public: void eat(){ cout<<"B";} }; class C: virtual public A { public: void eat(){ cout<<"C";} }; class D: public B,C { public: void eat(){ cout<<"D";} }; int main(){ A *a = new D(); a->eat(); } Я...

97
Qt поддерживает виртуальные чистые слоты?

В моем проекте с графическим интерфейсом Qtесть много классов "страниц конфигурации", которые все наследуются непосредственно отQWidget . Недавно я понял, что все эти классы имеют 2 общих слота ( loadSettings()и saveSettings()). По этому поводу у меня два вопроса: Имеет ли смысл писать...

95
Почему C ++ не допускает унаследованную дружбу?

Почему дружба по крайней мере необязательно наследуется в C ++? Я понимаю, что транзитивность и рефлексивность запрещены по очевидным причинам (я говорю это только для того, чтобы избежать простых ответов на часто задаваемые вопросы), но отсутствие чего-то в этом роде virtual friend class Foo;меня...

95
Как я могу динамически создавать производные классы из базового класса

Например, у меня есть следующий базовый класс: class BaseClass(object): def __init__(self, classtype): self._type = classtype Из этого класса я получил несколько других классов, например class TestClass(BaseClass): def __init__(self): super(TestClass, self).__init__('Test') class...

95
Пользовательские классы ошибок Ruby: наследование атрибута сообщения

Я не могу найти много информации о пользовательских классах исключений. Что я знаю Вы можете объявить свой собственный класс ошибок и позволить ему наследовать от него StandardError, поэтому он может быть rescued: class MyCustomError < StandardError end Это позволяет поднять его, используя:...

93
Получение имени дочернего класса в родительском классе (статический контекст)

Я создаю библиотеку ORM с учетом повторного использования и простоты; все идет нормально, за исключением того, что я застрял из-за дурацкого ограничения наследования. Обратите внимание на приведенный ниже код: class BaseModel { /* * Return an instance of a Model from the database. */ static public...

93
Как я могу получить имя класса из статического вызова в расширенном классе PHP?

У меня два класса: Actionи MyAction. Последний объявлен как: class MyAction extends Action {/* some methods here */} Все, что мне нужно, это метод в Actionклассе (только в нем, потому что будет много унаследованных классов, и я не хочу реализовывать этот метод во всех из них), который вернет имя...

92
Функция с тем же именем, но другой подписью в производном классе

У меня есть функция с тем же именем, но с другой сигнатурой в базовом и производном классах. Когда я пытаюсь использовать функцию базового класса в другом классе, который наследуется от производного, я получаю сообщение об ошибке. См. Следующий код: class A { public: void foo(string s){}; }; class...

92
Наследование Python: TypeError: object .__ init __ () не принимает параметров

Я получаю такую ​​ошибку: TypeError: object.__init__() takes no parameters при запуске своего кода я действительно не вижу, что я здесь делаю не так: class IRCReplyModule(object): activated=True moduleHandlerResultList=None moduleHandlerCommandlist=None modulename="" def __init__(self,modulename):...

91
Нужно ли ВСЕ виртуальные функции реализовывать в производных классах?

Это может показаться простым вопросом, но я нигде не могу найти ответа. Предположим, у меня есть следующее: class Abstract { public: virtual void foo() = 0; virtual void bar(); } class Derived : Abstract { public: virtual void foo(); } Это нормально, что класс Derived не реализует функцию bar ()?...

90
Динамическое связывание Java и переопределение методов

Вчера у меня было двухчасовое собеседование по телефону по техническим вопросам (которое я прошел, у-у-у!), Но я полностью не ответил на следующий вопрос, касающийся динамического связывания в Java. И это вдвойне озадачивает, потому что я учил этой концепции студентов, когда был ТА несколько лет...

90
Когда использовать val или def в трейтах Scala?

Я просматривал эффективные слайды scala, и на слайде 10 упоминается, что никогда не следует использовать valв a traitдля абстрактных элементов и использовать defвместо этого. На слайде не упоминается подробно, почему использование аннотации valв a traitявляется анти-шаблоном. Я был бы признателен,...

89
Ошибка Java: неявный суперконструктор не определен для конструктора по умолчанию

У меня есть простой код Java, который по своей структуре похож на этот: abstract public class BaseClass { String someString; public BaseClass(String someString) { this.someString = someString; } abstract public String getName(); } public class ACSubClass extends BaseClass { public ASubClass(String...

89
Хороший пример наследования на основе прототипов в JavaScript

Я программировал на языках ООП более 10 лет, но сейчас изучаю JavaScript, и впервые столкнулся с наследованием на основе прототипов. Я стараюсь учиться быстрее всего, изучая хороший код. Каков хорошо написанный пример приложения (или библиотеки) JavaScript, которое правильно использует прототипное...

89
Наследование класса case в Scala

У меня есть приложение на базе Squeryl. Я определяю свои модели как классы case, в основном потому, что мне удобно иметь методы копирования. У меня есть две модели, которые строго связаны. Поля совпадают, многие операции являются общими, и они должны храниться в одной таблице БД. Но есть...

88
Objective-C множественное наследование

У меня есть 2 класса, один из которых включает метод A, а другой - метод B. Итак, в новом классе мне нужно переопределить методы methodA и methodB. Итак, как мне добиться множественного наследования в объективе C? Я немного запутался в синтаксисе....

88
преобразование из производного * в базовое * существует, но недоступно

Почему следующий код вызывает эту ошибку, хотя c является структурой и по умолчанию имеет публичное наследование? struct c { protected: int i; public: c(int ii=0):i(ii){} virtual c *fun(); }; c* c::fun(){ cout<<"in c"; return &c(); } class d : c { public: d(){} d* fun() { i = 9;...

88
Переопределение против сокрытия Java - запутано

Я не понимаю, чем отличается переопределение от скрытия в Java. Может ли кто-нибудь предоставить более подробную информацию о том, чем они отличаются? Я прочитал Учебное пособие по Java, но пример кода по-прежнему меня смутил. Чтобы быть более ясным, я хорошо понимаю переопределение. Моя проблема...