Описание тега upcasting

Повышающее преобразование позволяет рассматривать объект типа подкласса как объект любого типа суперкласса.
1 ответ

FSharp и upcasting для интерфейсов кажется избыточным

У меня есть следующий фрагмент кода с использованием реактивных расширений: let value : 't = ... Observable.Create<'t>(fun observer -> let subject = new BehaviorSubject<'t>(value) let d0 = subject.Subscribe(observer) let d1 = observab…
21 дек '12 в 07:03
1 ответ

Обновление в C++: невозможно преобразовать указатель дочернего класса в указатель родительского класса

У меня проблема с моей программой. Я создал класс Graph в C++, и теперь я хочу отсортировать его топологически. Дело в том, что моя топологическая сортировка принимает любой DirectedGraph, но когда я хочу дать ему дочерний элемент (например, Adjacen…
06 апр '16 в 01:51
1 ответ

Java апкастинг и даункастинг по интерфейсам

Это, вероятно, глупый вопрос, но мне нужно знать. У меня интерфейс как import com.amazonaws.services.dynamodbv2.AmazonDynamoDBAsync; public interface AsyncClient extends AmazonDynamoDBAsync{ } И у меня есть класс ClientCreator, который имеет метод i…
06 янв '14 в 19:00
1 ответ

В java, повторение downcasting и upcasting стирает данные в подклассе?

Я понимаю, что апскейтинг конвертирует подкласс в суперкласс, в то время как обратное преобразование происходит наоборот Однако, если предположить, что для подкласса и суперкласса существует разное количество типов данных, делает ли преобразование и…
09 дек '18 в 02:54
0 ответов

Что именно является upcast? Мой инструктор CS111 сказал мне, что в моем методе есть upcast

public class Change{ public static void Change(double salesTotal, double customerPayment){ //Bill:a$130,b$55,c$25,d$5,e$1 //f75cents,g30cents,h1cents double a,b,c,d,e,f,g,h; a = b = c = d = e = f = g = h = 0; double change = customerPayment - salesT…
03 мар '18 в 19:44
1 ответ

Java Сравнение двух свойств по ссылкам на объекты

При переопределении свойства equals для одного из моих классов возможно ли реализовать его так? Рассматриваемые свойства, такие как идентификатор, могут быть String, boolean, Date, Set или LinkedHashSet public boolean equals(Object obj) { if (this =…
12 янв '12 в 07:33
1 ответ

Даункинг: строительство деревьев

Я написал шип решение для базового класса построения дерева, который я создал. Выход для первого "Добавление элемента № {0} на глубине {0}" - это элемент 0 на глубину 0, а не ожидаемый 0,1. Это просто поразило меня, когда я писал это. Может ли это б…
11 мар '14 в 04:17
2 ответа

Каков порядок распечатки НОВОГО ключевого слова в наследовании?

Это на самом деле часть одного из интервью, которое я запутался. class A { public A() { System.out.println("A") ; } } class B extends A { public B() { System.out.println("B") ; } } A a1 = new B(); System.out.println() ; A a2 = (A) new B() ; Итак, во…
31 мар '16 в 19:33
2 ответа

Преобразование std::shared_ptr с использованием std::dynamic_pointer_cast

Я начинаю работать с умными указателями в C++0X/11, и я столкнулся с особой ситуацией. Я хочу выполнить приведение экземпляра объекта с использованием shared_ptr. Класс Extend наследуется от класса Base, где у базового класса есть виртуальный дестру…
14 фев '13 в 14:57
3 ответа

Когда C не нужен адрес оператора?

Есть ли в C случаи, когда для массивов адрес оператора не нужен? Например, я знаю, что этот код нуждается в адресе оператора: typedef struct foo_t { int bar; } foo_t; void foo_init(foo_t *f) { f->bar = 123; } ... { foo_t f; foo_init(&f); } Но…
19 янв '15 в 01:45
2 ответа

Не удалось обновить объект шаблона по параметру функции

В следующем упрощенном коде я пытаюсь что-то вроде этого: struct A{}; struct B : public A {}; void func(A &a) {} B b; func(b); Обычно это работает, но в следующем более сложном коде это не работает. Я думаю, что я что-то упустил по шаблонам. Поч…
10 янв '14 в 17:47
5 ответов

Стоимость приведения к ArrayList объектов, а затем приведения к пользовательскому ArrayList

У меня есть ситуация, в которой я получаю данные из базы данных, и я хочу выгружать их в ArrayList of objects а затем уменьшить его до другого пользовательского ArrayList т.е. List<User>, List<Groups> и т.п. Мой вопрос - приведение к объ…
19 дек '12 в 14:19
1 ответ

Автоматическое обновление при вызове функции с нулевым

Этот код распечатывает MyUrgentException, Кто-нибудь может объяснить, почему? class MyException extends Exception{ } class MyCriticalException extends MyException{ } class MyUrgentException extends MyCriticalException{ } public class Test{ public vo…
08 июл '11 в 09:21
1 ответ

Обновление ссылки на класс после получения через форму

Что ж, Давайте предположим, что у меня есть два класса Model: public class BaseClass{ public Int32 variable {get;set;} } public class DerivatedClass : BaseClass{ public Int32 otherVariable {get;set;} } И представление с типом BaseClass в качестве мо…
24 фев '12 в 04:03
0 ответов

Почему адреса указателей отличаются после апкастинга в C++?

class A { public: A():m_a(111) {} A(int a); public: void display(); protected: int m_a; }; A::A(int a): m_a(a) { } void A::display() { cout<<"Class A: m_a="<<m_a<<endl; } class B: public A { public: B(int a, int b); public: void di…
03 фев '19 в 10:52
1 ответ

Разница между явным понижением и повышением

Если у меня есть следующая ситуация, где я определяю класс Animal и другой класс Dog, который расширяет Animal следующими двумя строками кода: 1) собака d = (собака) new Animal(); // явное опущение 2) животное = новая собака (); // автоматический up…
06 дек '18 в 19:35
1 ответ

Параметр вложенного типа Java Upcasting

Учитывая код Java ниже, я хочу знать, почему апкастинг Foo<String> в Foo<object> не работает? По сути, я хочу сказать Java, что если T это подкласс S, затем Foo<T> это подкласс Foo<S>, Я знаю, что есть способ сделать это в Sc…
06 апр '15 в 17:58
2 ответа

Неверный тип аргумента для NSAssert1

Это не дает мне ошибку, но несколько предупреждений, от которых я бы хотел избавиться. OSErr err = AudioUnitInitialize(toneUnit); NSAssert1(err == noErr, @"Error initializing unit: %ld", err); Предупреждение, которое я получаю: Format specifies type…
02 авг '12 в 12:47
2 ответа

Что такое "upcast"?

Я вижу, что термин "upcast" связан с ООП, но я не могу найти точное определение, выполнив поиск в Интернете. Может ли кто-нибудь объяснить, что означает этот термин и в какой ситуации этот метод полезен?
18 сен '12 в 07:14
0 ответов

C++ избегать приведения в производном коде класса для двойного контейнера / дизайна содержащихся объектов

У меня есть двойные базовые классы для класса контейнера и содержащегося объекта (в моем случае для универсального класса графа, состоящего из связанных узлов, но я предполагаю, что вопрос будет стоять во всех случаях, когда вы хотите извлечь как из…
13 сен '17 в 20:00