Результаты поиска по запросу "inheritance"

1 ответ

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

ое наследство против композиции. У меня есть небольшая путаница, когда использовать каждый. Поскольку частные наследственные печати, в некотором роде, цепочка наследования, даны: class A { private: int z; protected: int y; public: int x; }; ...

5 ответов

 когда придет время для создания вершинного буфера

у сделать что-то вроде этого: template <typename T:public Vertex> addTri( T v1, T v2, T v3 ) { // Take v1.pos, v2.pos, v3.pos and create a geometric repn.. Triangle tri( v1.pos, v2.pos, v3.pos ) ; // all vertices will // have to have a .pos ...

9 ответов

 Подход ветвей служит скорее контрпримером, чем что-либо, что можно было бы сделать на самом деле.

лкиваюсь с ситуацией, когда мне нужно получить доступ к дочерним переменным-членам внутри родительского класса. Я знаю, что это противоречит принципам ОО, но мне приходится иметь дело со сценарием, в котором сотни классов наследуются от одного, и ...

ТОП публикаций

5 ответов

абстрактные классы и интерфейсы лучшие практики в Java

Итак, у вас есть интерфейс и абстрактный класс, который реализует подмножество методов в интерфейсе. У вас также есть некоторые классы, которые наследуют абстрактный класс и дают реализации методов, которые абстрактный класс не дает. Так какова ...

7 ответов

 указатель.

овольно простой вопрос, но я все еще не уверен: Если у меня есть класс, который будет создаваться миллионы раз - желательно ли не выводить его из какого-то другого класса? Другими словами, несет ли наследование некоторую стоимость (с точки ...

3 ответа

@ Воо - согласен, я просто указываю на возможные сценарии. То, что он хочет, не возможно.

озвонить в Super :: printThree из Super :: Super ()? В приведенном ниже примере я вызываю Test :: printThree. class Super { Super() { printThree(); // I want Super::printThree here! } void printThree() { System.out.println("three"); } } class ...

1 ответ

Вы можете использовать черту реализации, как это делают классы коллекции, которая параметризована конкретным типом. Например, что-то вроде:

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

6 ответов

Конструктор вызывает иерархию во время наследования

од public class Parent { public Parent(int i) { Console.WriteLine("parent"); } } public class Child : Parent { public Child(int i) { Console.WriteLine("child"); } }Я получаю ошибку: Родитель не содержит конструктор, который принимает 0 ...

1 ответ

Ответ очень старый, поэтому, возможно, scala изменил это поведение, но для меня сейчас это выглядит так, как будто это неправильно. Линеаризация должна быть: Реализация, Абстракция, Черта, ...

е работает: trait Trait class Class extends Trait with TraitКомпилятор жалуется: <console>:8: error: trait Trait is inherited twice class Class extends Trait with Trait ^ <console>:8: error: trait Trait is inherited twice class Class extends ...

3 ответа

 вызовите методы интерфейса через ссылку на интерфейс. Это контракт, а НЕ способность вызывать методы интерфейса без предварительного приведения к интерфейсу. Конечно, вы обычно должны раскрывать методы интерфейса, не требуя также приведения, но это не является ни техническим требованием, ни всегда логическим требованием.

я есть класс, который наследует интерфейс. Метод члена интерфейса реализован в моем классе без модификатора доступа (поэтому по умолчанию он является закрытым). Я получаю сообщение об ошибке "не могу реализовать элемент интерфейса, потому что он ...