Sagen wir:
public interface IBase
{
// Stuff
}
public class Derived : IBase
{
// Stuff
}
Wenn Sie
Derived instance_ = new CDrv();
Ibase ibase = instance_; // Line 1
Ist dies eine implizite Umwandlung oder eine Zuweisung?
Ist es möglich, einen Klon zu erstellen von instance_
und zuweisen/umwandeln in ibase
vielleicht durch Überschreiben der Konvertierung oder des Zuweisungsoperators oder einer anderen Methode?
Oder anders gesagt, gibt es eine Möglichkeit, die instance_
nach dem Wert und nicht nach der Struktur? Ich möchte nicht, dass es eine Struktur ist, weil ich eine Reihe von Funktionen habe, die Folgendes zurückgeben Derived
und die oben genannte Umwandlung/Zuweisung wird nur selten vorkommen.