Отправляет email-рассылки с помощью сервиса Sendsay

Программирование. Форум !!!

(C++). Наследование и перегрузка имен. (IAR C/C++ Compiler for AVR 4.21A)

Здравствуйте,
Подскажите пожалуйста причину ошибки, и способ устранения.

Начало листинга:

struct t_guiitem{
...
void draw(int x, int y){...};
virtual void draw()=0;
...
};

struct t_guitxt:t_guiitem{
...
virtual unsigned int outtext(char __generic *str)=0;
virtual unsigned int outtext(char __generic *str,unsigned char n)=0;
...
virtual void draw(){...};
...
};

struct t_guilabel:t_guitxt{
unsigned int outtext(char __generic *str){...};
unsigned int outtext(char __generic *str,unsigned char n){...};
};

int main(){
int x,y;
...
t_guilabel label_num(...);
((t_guiitem*)&label_num)->draw(x,y); //эта строка компилируется

label_num.draw(x,y); //При компиляции этой строки ошибка
//Error[Pe140]: too many
//arguments in function call
//main.cpp 486
...
}

Конец.

Т.е. как я понял компилятор подставляет функцию draw из родительского
класса t_guitxt без параметров,когда я прошу его подставить функцию
с двумя параметрами int из прародительского класса t_guiitem.

Подскажите пожалуста в чем может быть причина ошибки.

Ответить   Mon, 16 Jun 2008 17:26:04 +0600 (#753589)

 

Ответы:

Здравствуйте, Акчурин!
В Winamp'e играет < Системе не удается найти указанный путь (C:\Program Files\Winamp\Plugins\np.txt)

Вы писали:

Не знаю специфику языка С++, но использую по жизни C# могу
сказать, что используется так:

struct t_guilabel:t_guitxt{
override unsigned int outtext(char __generic *str){...};
override unsigned int outtext(char __generic *str,unsigned char n){...};
};

Ответить   Tue, 17 Jun 2008 08:11:45 +0300 (#753989)