2017-01-06 13 views
0

インスタンス変数でこの問題が発生しました。彼らは初期化されませんし、私は正確に何かを確信しています。私のクラスごとに同じです。私は以下のコードのいずれかを掲示:インスタンス変数が初期化されていません。何故ですか?

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 

あなたはインスタンス変数を宣言すると、それは再び

よろしく、 Kamilla

答えて

0

を発生しませんので、私は、誰かが私を助け、多分理由を説明することを願って、それらの値は "未定義"です - すなわち。特別な価値はありません。あなたはイニシャライザを使って(最後に ":= 123"と言う)、またはそれらをコンストラクタの値に設定することができます。あなたがどちらもしない場合、序曲はあなたにこの警告を与えます。必ずしもエラーではありませんが、使用する前に変数を値に設定する必要があります。

+0

こんにちはニック。どうもありがとうございました。それが私を助けたと思う。私がこの間違いを捉えたり理解しなかった "暗黙的"にしか働かなかったことが原因ですか? 例を作成するために '123'を自分のコードに割り当てることができますか?私はそれもいくつかのことをクリアすると思います。 ありがとうございます。 – KamK

+0

"private startPrice:nat1:= 123"に定義を変更できることを意味します。それはほとんど意味をなさないかもしれませんが、それはその1つのフィールドの警告を削除します。 –

関連する問題