2012-03-20 16 views
2
class AccountManager 
{ 
private: 
    Account accountlist[100]; 
    int *accountNumber; 
    Account* SuperVipAccount; 
    static int ManagerNumber; 
public 
    int getManagerNumber() const; 
}; 

私はこのようなクラスを持っていますが、 "getManagerNumber"に減算演算子を使用して、マネージャーナンバー-1を差し引いてみます。あなたは非常によくそれをデクリメントすることができますので、クラス内の静的変数にdecrement演算子を使用する方法

+1

は、なぜあなたは、あなたが明示的に宣言してやって許可しない何かをするだろう? – littleadv

+0

しかし、実際に 'getManagerNumber()'を 'const'として指定したのはなぜですか? –

答えて

4

ManagerNumberは、(クラス全体ではなくオブジェクトごとの共有)AccountManagerstaticメンバーです。
メソッドconststaticのメンバーには、正当性は適用されません。

int getManagerNumber() const 
{ 
    -- ManagerNumber; // ok 
    return ManagerNumber; 
} 
+0

AccountManager :: AccountManager() { ManagerNumber = 0; this - > SuperVipAccount = NULL; *(this - > accountNumber)= 0; } "AccountManager :: ManagerNumber 'への未定義の参照があります" – lpy

+1

@Laurent変数を定義しましたか?おそらく... – littleadv

+1

@Laurent 'static int ManagerNumber'は変数を宣言しますが、定義しません。 'int AccountManager :: ManagerNumber = 0;'、または初期値がどんなものであろうと、cppファイルに入れます。私は通常、インクルードの後で、関数定義の前に、一番上に置いています。 –

0
class AccountManager 
{ 
static int ManagerNumber; 
} 

AccountManager::ManagerNumber=0; 

int AccountManager::getManagerNumber() 
    { 
    return --ManagerNumber; 
    } 
関連する問題