Update: Fehler C2555 tritt beim Kompilieren von Code mithilfe von Visual C++ .NET 2003

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 839998 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Alles erweitern | Alles schließen

Problembeschreibung

Wenn Sie eine Anwendung mithilfe von Microsoft Visual C++ .NET 2003, erstellen Wenn Sie eine geschachtelte Klasse in einer abgeleiteten Klasse verwenden, generiert der Compiler Fehler C2555. Wenn dieses Problem auftritt, erhalten Sie eine Fehlermeldung, die der folgenden ähnelt:
Fehler C2555: 'Dervied::NestedDerived::GetEditObject': überschreibende virtuelle Funktion zurückgeben Typ unterscheidet sich und ist nicht ' Covariant ' von ' Base::NestedBase:: GetEditObject '
Dieses Problem tritt auf Wenn die geschachtelte Klasse, die Sie in der abgeleiteten Klasse verwenden von eine geschachtelte Klasse in der Basisklasse abgeleitet ist. Diese Fehlermeldung besagt, dass die Rückgabetypen nicht ' Covariant ' sind. Die Rückgabetypen sind jedoch covariant.

Lösung

Ein Hotfix zur Behebung dieses Problems ist inzwischen bei Microsoft erhältlich; dieser Hotfix wurde jedoch ausschließlich zur Behebung des in diesem Artikel beschriebenen Problems entwickelt. Deshalb sollten Sie nur Systeme aktualisieren, bei denen dieses spezielle Problem auftritt. Dieser Hotfix wird unter Umständen zu einem späteren Zeitpunkt weiteren Tests unterzogen. Wenn durch dieses Problem nicht schwerwiegend beeinträchtigt ist, empfiehlt Microsoft daher, auf das nächste Microsoft Visual Studio .NET 2003 warten, das diesen Hotfix enthält.

Wenn Sie das Problem sofort beheben möchten, wenden Sie sich an Microsoft Product Support Services, um den Hotfix zu erhalten. Eine vollständige Liste mit Telefonnummern der Microsoft-Produktsupport und Informationen Supportkosten der folgenden Microsoft-Website:
http://support.microsoft.com/contactus/?ws=support
Hinweis: PLEASE DO NOT TRANSLATE and DELETE THIS PASSAGE. IT DOES NOT APPLY TO GERMANY.

Die englische Version dieses Hotfixes weist die in der nachstehenden Tabelle aufgelisteten Dateiattribute (oder höher) auf. Die Datums- und Uhrzeitangaben für diese Dateien werden in Coordinated Universal Time () angegeben. Wenn Sie sich die Dateiinformationen ansehen, werden diese Angaben in die lokale Zeit konvertiert. Um die Differenz zwischen UTC und der Ortszeit zu ermitteln verwenden Sie die Registerkarte Zeitzone des Tools ? Datum und Uhrzeit in der Systemsteuerung.
   Date         Time   Version       Size       File name
   ------------------------------------------------------
   01-Apr-2004  01:12  13.10.4092.0    933,888  C1.dll
   01-Apr-2004  01:13  13.10.4092.0  2,207,744  C1xx.dll
   01-Apr-2004  07:49  13.10.4092.0  1,966,080  Feacp.dll
   01-Apr-2004  01:20                    5,342  Feacp.lib

Status

Microsoft hat bestätigt, dass dies ein Problem in Microsoft-Produkten handelt, die im Abschnitt "Gilt für" aufgeführt sind.

Weitere Informationen

Zum Reproduzieren des Problems kompilieren Sie den folgenden Beispielcode,:
//test.cpp
//cl test.cpp
//Error C2555
class Base 
{ 
public: 
        class NestedBase
        { 
        public: 
                virtual Base *   GetEditObject (); 
        }; 
        virtual NestedBase*        Edit () ; 
}; 

class Derived : public Base
{ 
public: 
        class NestedDerived : public NestedBase
        { 
        public: 
                virtual Derived*    GetEditObject(); 
        }; 
        virtual NestedDerived*        Edit () ; 
}; 
erhalten Sie folgende Fehlermeldung:
Nest.cpp(21): Fehler C2555: 'Dervied::NestedDerived::GetEditObject': überschreibende virtuelle Funktion zurückgeben Typ unterscheidet sich und ist nicht ' Covariant ' von ' Base::NestedBase:: GetEditObject ' nest.cpp(9): Siehe Deklaration von 'Base:: NestedBase::GetEditObject'
Weitere Informationen zur Terminologie, mit der Microsoft-Produktupdates, finden Sie die folgende KB-Artikelnummer:
824684Erläuterung von Standardbegriffen bei Microsoft Softwareupdates

Eigenschaften

Artikel-ID: 839998 - Geändert am: Montag, 15. Mai 2006 - Version: 4.0
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft Visual C++ .NET 2003 Standard Edition
Keywords: 
kbmt kbvsnet2003presp1fix kbfix kbbug kbqfe kbhotfixserver KB839998 KbMtde
Maschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 839998
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.

Ihr Feedback an uns

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com