1

私は ada を初めて使用します。ベクター パッケージを定義し、それをメソッドに渡すことができるようにしたいのですが、どこでパッケージを定義すればよいのでしょうか。これが必要なコードです。

package Document is new Ada.Containers.Vectors(Positive,Unbounded_String);
use Document;

どこに置くべきかわからないので、メインと別の関数ファイルに表示されます。

4

3 に答える 3

6

GNAT ( AdaCore の GPL バージョン、または FSF GCC バージョン) を使用している場合は、ファイルが必要ですdocument.ads(メイン プログラムと他のファイルを配置するのと同じ作業ディレクトリ内)。

新しいパッケージDocumentは、他の 2 つのパッケージと '<code>with' する必要があります:Ada.Containers.VectorsAda.Strings.Unbounded.

入れることはできませuse Document;document.ads。それを利用するパッケージに入れる必要がありDocumentますwith。このuse句は、完全修飾名を記述する必要があるかどうかを制御します。つまり、たとえば、持っているとおりに記述するには、次のDocumentように言います。

with Ada.Containers.Vectors;
with Ada.Strings.Unbounded; use Ada.Strings.Unbounded;
package Document is new Ada.Containers.Vectors (Positive, Unbounded_String);

しかし、書くのはより慣習的です

with Ada.Containers.Vectors;
with Ada.Strings.Unbounded;
package Document is new Ada.Containers.Vectors
  (Positive,                                                
   Ada.Strings.Unbounded.Unbounded_String);

あなたのメインプログラムと他のパッケージはwith Document;、(そして、必要に応じて) と言うことができますuse Document;

于 2012-05-16T09:54:42.573 に答える
3

サイモンの回答に加えて、どこにでも述べた2行を宣言部分に入れることができます。これは、メイン プロシージャ、ライブラリ、またはその他の場所のようなサブプログラム内に配置できます。

主な手順の例:

with Ada.Containers.Vectors;
with Ada.Strings.Unbounded;
procedure My_Main is
   package Document is new Ada.Containers.Vectors
     (Positive,
      Ada.Strings.Unbounded.Unbounded_String);
   -- use it or declare other stuff...
begin
   -- something...
end My_Main;

複数のソース ファイルで使用するには、パッケージの 1 つに入れるか、Simon が書いたように別のファイルに入れます。

于 2012-05-16T10:51:06.350 に答える
2

これに加えて、実際にベクトルを宣言するには、宣言セクションに配置する必要があります。

my_document : document.vector;

次に、ベクターパッケージに記載されているメソッドを使用できます

于 2012-05-16T11:06:10.233 に答える