2013-11-15 129 views
0

我剛剛開始C++大約一個星期前,最近覆蓋了類中的構造函數。使用Code :: Blocks,我已經想出了一個基本的類。我的問題是:爲什麼我不能簡單地將{m_f = f;}與{float m_f = f;}相比?我的編譯器不喜歡當我嘗試它沒有前面的浮動。初學者:快速構造函數Q

class classyClass 
{ 
    public: 
     classyClass(int x=0, int y=0) {m_x = x; m_y = y;} 
     classyClass(float f=0) {float m_f = f;} 

     void setX(int x) { m_x = x; } 
     void setY(int y) { m_y = y; } 

     int getX() const { return m_x; } 
     int getY() const { return m_y; } 

    private: 
     int m_x; 
     int m_y; 
}; 

感謝您的幫助!

+2

您沒有任何(私有)成員'浮m_f' ... – jpw

回答

1

我覺得你根本都忘了聲明m_f爲你的類的數據成員。:)

//... 
    private: 
    int m_x; 
    int m_y; 
    float m_f; 
+0

我發現這張照片後發現了這個......太棒了!謝謝。 –

0
  1. 因爲您聲明稱爲m_f在該位置局部變量。

  2. ..哪些將被立即丟棄,因爲您不保存在全局內存中 - 它只是一個本地。

  3. ...一個典型的現代編譯器會注意到進一步未使用的局部變量的分配並優化這個指令。

可能你的意思是在你的課堂上保存m_f;如果是這樣,你必須在內部聲明它,就像你對m_xm_y所做的那樣。