Переменная экземпляра не инициализирована. Это почему?
Я получил эту проблему с моими переменными экземпляра. Они не будут инициализированы, и я не уверен, что именно означает. Это то же самое для каждого класса, который у меня есть. Я разместил один из кодов ниже:
class Good
types
public evalGood ::
good : Good
price : nat1;
instance variables
private owner : Seller;
private startPrice : nat1;
private description : seq of char
operations
public getStartPrice : () ==> nat1
getStartPrice() == (return startPrice);
end Good
Я надеюсь, что кто-то может мне помочь и, возможно, объяснить, почему, чтобы это больше не повторилось
С уважением, Камилла
1 ответ
Когда вы объявляете переменные экземпляра, их значения являются "неопределенными" - т.е. нет конкретного значения - если вы не назначите их. Вы можете сделать это с помощью инициализатора (скажем, ":= 123" в конце) или установить для них значение в конструкторе. Если вы не сделаете ни одного, Overture выдаст вам это предупреждение. Это не обязательно ошибка, но вы должны установить переменные в значение, прежде чем использовать их.