upcasting

    1熱度

    2回答

    我知道有大量的文章/問題在stackoverflow中描述了Java中的向上轉換和向下轉換。我知道什麼是上傳和下調。但我的問題並不特指。 Upcasting - 從小孩轉換爲父母 - 編譯器需要注意。沒有投需要 向下轉換 - 從父轉換爲孩子 - 明確的轉換需要 public class Animal { public void getAnimalName(){ System

    10熱度

    1回答

    這將編譯: import scala.collection._ trait Foo[A, +This <: SortedSet[A] with SortedSetLike[A,This]] extends SortedSetLike[A, This] { this: This => def bar: This = (this: SortedSetLike[A,This]).emp

    -1熱度

    2回答

    如何在派生類中更改繼承變量的類型? 我有以下類:其中問題是由一個箭頭標記 class Position; class StonePosition; class Position { public: Position() {} }; class StonePosition : public Position { int count; public: St

    2熱度

    2回答

    在下面的示例中,我遇到clone()方法的問題。我曾預計sizeof(*((*ptr1).clone()))將會與b1相同,而sizeof(*(ptr2.clone()))的尺寸應該是c1,但它們不是。他們是sizeof(a1)。我錯過了什麼? 這是代碼。 class A {int a; public: virtual A * clone() {return this;} };

    0熱度

    2回答

    C++允許使用類子類型,這非常方便,因爲您可以使用派生類爲基類實現的函數。 Rust似乎沒有這樣的東西。該功能似乎在某些時候已經可用,但自此之後已被刪除。這在Rust中是不可能的嗎?如果是這樣,有沒有計劃有這個功能? 我想要做的就是確定從另一個結構,這在C++看起來像繼承結構: struct Base { int x; int y; void foo(int x, i

    1熱度

    1回答

    考慮我們有三個類從基部CLASSE繼承,形狀,其基類和其它兩個類圓和文本(形狀) Shape.cs namespace ObjectOriented { public class Shape { public int Height { get; set; } public int Width { get; set; } public int

    0熱度

    1回答

    爲什麼Java不支持模板參數類型的自動上傳? 例如,下面的類將不能編譯,除非新創建Derived實例將手動澆鑄爲Base實例: public class Example implements Iterable<Base> { @Override public Iterator<Base> iterator() { return Arrays.asList(new

    1熱度

    1回答

    我有這個類: class MyClass { public int Id { get; set; } } 我可以創建對象的返回類型的這種具體方法,並沒有向上轉型返回整數ID: object ConcreteGetId(MyClass mc) { return mc.Id; } 然而,當我嘗試生成一個委託使用表達式... static Delegate Gener

    0熱度

    1回答

    我試圖投與一類參數的類的對象到相同類的對象與更通用的類型參數,如下面的銀行代碼中所示: class ParameterClassA { } class ParameterClassB: ParameterClassA { } class WorkingClassA<T> { } class WorkingClassB: WorkingClassA<ParameterClassB>

    -1熱度

    2回答

    在我的例子: 在向上轉型,應該不是第二d.print()調用印刷「基地」? 是不是「d」派生的對象上傳到基類對象? 而在向下轉換時,它有什麼優勢? 您能否以實際的方式解釋upcast和downcast? #include <iostream> using namespace std; class Base { public: void print() { cout << "bas