Переменная экземпляра не инициализирована. Это почему?

Я получил эту проблему с моими переменными экземпляра. Они не будут инициализированы, и я не уверен, что именно означает. Это то же самое для каждого класса, который у меня есть. Я разместил один из кодов ниже:

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 выдаст вам это предупреждение. Это не обязательно ошибка, но вы должны установить переменные в значение, прежде чем использовать их.

Другие вопросы по тегам