alias для методов класса

Вопросы программирования на Free Pascal, использования компилятора и утилит.

Модератор: Модераторы

alias для методов класса

Сообщение trifon » 10.02.2007 17:27:52

Возможно ли использование alias для методов класса.
Есть unit содержащий код.

Код: Выделить всё
type
   TVector3 = class
.........
   public
.........
      procedure multiply( const arg : TFloat ); alias : 'mult';
      procedure divide( const arg : TFloat ); alias : 'div';
.........
end;


собирается без ошибок и предуприждений.

При попытке вызова alias
Код: Выделить всё
v[i].mult( 10 );
v[i].div( 10 );


вызывает ошибку компиляции

test3.pp(32,15) Error: identifier idents no member "mult"
test3.pp(32,19) Error: Illegal expression
test3.pp(32,19) Fatal: Syntax error, ";" expected but "(" found
test3.pp(32,19) Fatal: Compilation aborted


нормальный вызов ошибок не вызывает
Код: Выделить всё
v[i].multiply( 10 );
v[i].divide( 10 );


может кто нибудь подскажет в чём проблема?
trifon
постоялец
 
Сообщения: 135
Зарегистрирован: 24.12.2006 12:08:35

Сообщение shade » 11.02.2007 10:41:46

alias создает идентификатор видимый в ассемблере, в обычном Pascal-коде он не видим.
Аватара пользователя
shade
энтузиаст
 
Сообщения: 879
Зарегистрирован: 21.02.2006 20:15:48
Откуда: http://shamangrad.net/

Сообщение shade » 11.02.2007 10:45:41

Попробуй так:
Код: Выделить всё
type
   TVector3 = class
.........
   public
.........
      procedure multiply( const arg : TFloat ); alias : '_mult';
      procedure divide( const arg : TFloat ); alias : '_div';
     
      procedure mult( const arg : TFloat );
      procedure div( const arg : TFloat );
.........
end;

.........

procedure TVector3.mult( const arg : TFloat ); external name '_mult';
procedure TVector3.div( const arg : TFloat ); external name '_div';
Аватара пользователя
shade
энтузиаст
 
Сообщения: 879
Зарегистрирован: 21.02.2006 20:15:48
Откуда: http://shamangrad.net/


Вернуться в Free Pascal Compiler

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5

Рейтинг@Mail.ru