我尝试编写以下内容,看看我是否可以通过结合对泛型类函数和嵌套类的支持来模拟Free Pascal 3中的泛型方法:
{$mode delphi}
type TFoo = class
public
type TBar<T> = class
class function Min(const A, B: T): T;
end;
end;
class function TFoo.TBar<T>.Min(const A, B: T): T;
begin
if A < B then
Result := A
else
Result := B;
end;
我尝试了几种语法变体,但无论如何我都无法编译。在这种形式中,编译器在第8行(method identifier expected
,Syntax error, ";" expected but "<" found
)上给出了致命错误。
如果可能的话,这个的正确语法是什么?
答案 0 :(得分:0)
fpc 3.0.4中的正确且有效的语法,至少在objfpc模式下(未测试模式delphi):
#include <iostream>
using namespace std;
bool isSortedInAscendingOrder(int list[]);
const int size = 5; // Set this to 2000 again if you want
int main()
{
int i;
int list[size];
for (i = 0; i < size; i++)
{
int j = 0;
while(j <= 0)
{
cin >> j;
if(j <= 0)
cout << "rejected as equal or smaller zero" << endl;
}
list[i] = j;
}
if (isSortedInAscendingOrder(list))
cout << "sorted" << endl;
else
cout << "unsorted" << endl;
return 0;
}
bool isSortedInAscendingOrder(int list[])
{
for (int i = 0; i < size -1; i++)
{
if (list[i] > list[i + 1])
{
return false;
}
}
return true;
}