Ich bin nicht sicher, warum ich einen "Fehler C2660: 'SubClass::Data' : Funktion nimmt nicht 2 Argumente".
Ich habe eine Basisklasse mit einer Funktion namens data. Die Funktion benötigt ein Argument. Es gibt eine Überladung von Data, die 2 Argumente benötigt. In meiner Unterklasse überschreibe ich die data-Funktion mit 1 Argument. Wenn ich nun versuche, die Überladung von Data von einem Zeiger auf subClass aufzurufen, erhalte ich den oben genannten Kompilierfehler.
class Base : public CDocument
{
Public:
virtual CString& Data( UINT index);
CString Data( UINT index, int pos);
};
class SubClass : public Base
{
Public:
virtual CString& Data( UINT index);
};
Void SomeOtherFunction()
{
subType* test = new subType();
test->Data( 1, 1);// will not compile
((Base*)test)->Data(1,1); // compiles with fine.
}