2016-03-31 20 views
0

私は、ユーザーから整数値を受け取るプログラムを作成しようとしています。整数値はミューテータ機能によって変更され、別の機能が画面に表示されます。ご協力いただきありがとうございます。ここに私の努力が今までです。クラスアクセッサ関数とC++のmutator関数

#include <iostream> 

using namespace std; 

class bank 
{ 
public: 

    bank(); 

    void output(ostream& out) 
    { 
    out<<account; 
    } 

    int revised(int acc) 
    { 
    acc=acc+acc*2; 
    } 

    void set_account(int a) 
    { 
    account = a; 
    } 

    int get_account() 
    { 
    return account; 
    } 


private: 

int account; 

}; 



int main() 
{ 
bank obj1; 
int i; 
cout << "Enter your money"; 
cin>>i; 

obj1.set_account(i); 
obj1.output(cout); 

return 0; 
} 
+0

具体的な質問は何ですか?あなたが明確な答えを得ることができるように、明確な質問を含めてください。たとえば、ヘルプが必要なエラーが表示されていますか、プログラムが正しく動作していませんか? – Chara

+0

あなたの質問は何ですか?あなたのコードはまったく動作しませんか?それは部分的に機能しますか?あなたはどんなアウトプットを見ましたか?あなたはどんな出力を得ていますか? –

+0

私のコードは関数の部分でエラーを出します。エラーのないクラスのプロトタイプを宣言しました。しかし、クラスの外側を読み込むとエラーになります。 – Aldrich

答えて

0

は、関数に引数の型を渡さないでください:obj.set_account(i)obj.output(cout)は十分です。 outmain()に定義されていないため、outの代わりにcoutを渡したことに注意してください。関数定義/宣言のパラメータ名は、実際に渡す引数の名前とは何の関係もないことに注意してください。

また、関数定義の戻り値の型がありません。

さらにostreamはコピーctorを定義していないため、ostreamを値ではなく参照渡しする必要があります。

+0

ありがとうございます。あなたの提案で私の質問を編集しました。しかし今、それはエラーを返します:bank :: bankへの未定義の参照 – Aldrich

+0

あなたは 'bank()'コンストラクタを宣言しましたが、定義していません。 'bank(){}'を実行するか、宣言を完全に削除してコンパイラにデフォルトのctorを生成させてください – Chara

+0

ありがとうございました。 – Aldrich