1

VDM ++ToolBoxAcademicで愚かなエラーが発生します。

操作を実行しようとすると、次のエラーが発生します。

Run-Time Error 280: No constructor with this parameter list is in scope
value: "Game"

私のコンストラクターは次のとおりです。

public Game: Date * Team * Team ==> Game
Game(d,t1,t2) == (
    matchday := d;
    host := t1;
    visitor := t2;
    return self;
);

そして私はそれをここで呼びます:

game := new Game(matchday1day1,groupA.teams(2),groupA.teams(3));

私はこの宣言を持っています:

public groupA : Group;
public matchday1day1 : Date;

および(グループで):

public teams : seq of Team;

エラーはの最初の文字を指していGameます。

誰かが私を助けることができますか?

4

1 に答える 1

0

モデルの説明を正しく読むと、次のようになります。

class Group

instance variables
public teams : seq of Team := [new Team(),new Team(),new Team()];
end Group

class Team
end Team

class Date
end Date

class Game

instance variables
matchday: Date;
host : Team;
visitor : Team;

operations
public Game: Date * Team * Team ==> Game
Game(d,t1,t2) == (
    matchday := d;
    host := t1;
    visitor := t2;
    return self;
);
end Game

class Test
instance variables

public groupA : Group := new Group();
public matchday1day1 : Date := new Date();

operations

public test : ()==>()
test()== (
dcl game : Game;
 game := new Game(matchday1day1,groupA.teams(2),groupA.teams(3)) ;
)

end Test

テストを追加して変数を初期化した場所。

ここでは何も問題はありません。実際、VDM 用の他のオープン ソース ツール スイートであるOvertureでも実行されます。あなたの仕様は正しい VDM だと思います。Overture IDE で試してみてください。

于 2012-12-04T19:52:32.610 に答える