在Eiffel中初始化数组

时间:2014-02-22 21:54:56

标签: arrays map instance eiffel

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)

第一类由数组及其大小组成。当我尝试创建ARRAY的m对象时,当我放置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。但这并不好,因为很明显,如果我使用MAP中的数组调用其他函数,它将无效。我实际上尝试过使用ARRAY类中的其他函数,但是我遇到了编译错误。

1 个答案:

答案 0 :(得分: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不会输出换行符,因此终端中的零容易丢失。)