0
class
    MAP[G]
create
    make

feature --attributes
    g_array: ARRAY[G]
    size:INTEGER

feature{NONE}
make
    do
        g_array.make_empty
           size:=0
    end

class
    MAP_TESTING

m: MAP[INTEGER]

create m.make
print(m.size)

最初のクラスは、配列とそのサイズで構成されます。mARRAYのオブジェクトを作成しようとしたときに、 を入れても何も出力されないようprint(m.size)です。配列を正しくインスタンス化していますか? に正しいmake関数を使用していますARRAYか? 何も印刷されないのはなぜですか?

---------------------------

class
    MAP[G]
create
    make

feature --attributes
    g_array: ARRAY[G]
    size:INTEGER

feature{NONE}
make
  --I left this blank
    end

class
    MAP_TESTING

m: MAP[INTEGER]

create m.make
print(m.size)

makeこれは、空白のままにすると実際に機能します。プリントアウトし0ます。しかし、配列 in を使用して他の関数を呼び出すと、明らかに機能しないため、これは良くありMAPません。ARRAYクラスの他の関数も実際に使ってみたのですが、コンパイルエラーになってしまいました。

4

1 に答える 1

2

配列を作成する行は次のようにMAPなります。

create g_array.make_empty

そして、MAP_TESTING次のようにする必要があります。

class
    MAP_TESTING
creation
    make
feature
    m: MAP[INTEGER]

    make
    do
        create m.make
        print(m.size)
    end
end

(printは改行を出力しないため、ターミナルでゼロが簡単に失われる可能性があることに注意してください。)

于 2014-02-23T00:47:04.657 に答える