Форум: "Начинающим";
Текущий архив: 2008.12.21;
Скачать: [xml.tar.bz2];
ВнизPredefine record Найти похожие ветки
← →
@!!ex © (2008-11-10 17:00) [0]Есть два рекорда:
TVector4f = record
class operator Multiply(a:TVector4f; m:TMatrix4x4f):TVector4f;
end;
TMatrix4x4f = record
class operator Multiply(m:TMatrix4x4f; v:TVector4f):TVector4f;
end;
Компилятор ругается на то, что тип TMatrix4x4f еще не определен, когда действует определение Вектора.
Если бы это были бы классы, то не проблема:
TMatrix4x4f = class;
TVector4f = record
class operator Multiply(a:TVector4f; m:TMatrix4x4f):TVector4f;
end;
TMatrix4x4f = record
class operator Multiply(m:TMatrix4x4f; v:TVector4f):TVector4f;
end;
С рекордами такое не работает. Что делать??
← →
Palladin © (2008-11-10 17:08) [1]использовать указатели на них
← →
@!!ex © (2008-11-10 17:20) [2]В операторах?
Неудачное решение..m:TMatrix;
v:TVector;
v:=v*@m;
?
А что делать если функция будет?function m:TMatrix;
v:=v*???
Вообще не юзабельно получается. :((
← →
Palladin © (2008-11-10 17:26) [3]нет
PVector4f=^TVector4f;
PMatrix4x4f=^TMatrix4x4f;
TVector4f = record
class operator Multiply(a:PVector4f; m:PMatrix4x4f):PVector4f;
end;
TMatrix4x4f = record
class operator Multiply(m:PMatrix4x4f; v:PVector4f):PVector4f;
end;
все юзабельно
← →
@!!ex © (2008-11-10 17:28) [4]> [3] Palladin © (10.11.08 17:26)
ну вот. теперь у меня есть две функции. GetVector и GetMatrix. Нужно перемножить их результаты.var
a:TVector;
begin
a:=GetVector()*GetMatrix();
end;
Не работает.
← →
Palladin © (2008-11-10 17:31) [5]о блин, у тебя же оператор перекрывается... не вдумался...
← →
@!!ex © (2008-11-10 17:33) [6]вот вот...
Нифига не могу решить что делать. :((
← →
MBo © (2008-11-11 05:55) [7]В некоторых случаях такой изврат может помочь:
TDummy = record
y: Integer;
end;
TA = record
x: Integer;
class operator Add(l: TDummy; r: TA): TA;
end;
TB = record
y: Integer;
class operator Add(l: TA; r: TB): TB;
class operator Implicit(l: TB): TDummy;
end;
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2008.12.21;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.079 c