Инициализация массива в 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)
Первый класс состоит из массива и его размера. Когда я пытался создать m
объект ARRAY, кажется, ничего не печатать, когда я положил 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 ответ
Строка для создания массива в 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
не выводит символ новой строки, поэтому ноль может легко потеряться в терминале.)