Я не уверен, почему я получаю «ошибку C2660:« SubClass :: Data »: функция не принимает 2 аргумента». когда я пытаюсь скомпилировать свой проект.
У меня есть базовый класс с функцией под названием data. Функция принимает один аргумент. Перегрузка данных, которая принимает 2 аргумента.
В моем подклассе я переопределяю функцию данных, принимающую 1 аргумент. Теперь, когда я пытаюсь вызвать перегрузку данных из указателя на подкласс, я получаю вышеуказанную ошибку компиляции.
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.
}