2016-02-20 25 views
-1

使用類我寫的時刻一類,我想在其中存儲的值。代碼如下所示:在Arduino的

class A{ 
    private: 
    bool ena; 
    //... 
    public: 
    //...  

    void function(int x) 
    { 
    if(x == 1)// or x could equal anything 
    { 
     ena = 1; 
    } 
    if(x == 0) // x could equal anything 
    { 
     ena = 0; 
    } 

    if((x == 5) && (ena == 1)) 
    { 
     //...part1..... 
    } 
    //  .....other parts...  
    } 
}; 

正如你可以看到我想要啓用或致電該先用1或0禁用此功能的某些部分但之後,我啓用它的「ENA」變量失去IST值當函數被再次調用時。我怎麼能解決這個存儲布爾valuein我的班?

謝謝你們。

+1

它你的意思是不是很清楚。 ena如何失去其價值?這是一個類成員變量。 – Fang

+0

語句'ena == 0;'不會改變'ena',並且應該生成一個編譯器警告。這條線應該是'ENA = 0;' – user3386109

+0

你說得對,我把它抄了錯誤的論壇 – Abotric

回答

1

你的錯誤很可能是使用==比較,而不是=分配。

class A { 
    bool ena; // doesn't have to be public so far 
public: 
    void function(int x) 
    { 
     if(x == 0) // x could equal anything 
     { 
      ena = true; 
      //^ not == 
     } 
    } 
}; 

用法:

A a; 
a.function(0); 
// now A.ena is true 
+0

對不起,我的錯誤 - 自那時起我編輯了我的帖子。 在代碼運行時,我可以向右後看,如果(X == 1)......這個ENA的值設置爲1,但功能又稱爲後,它@Abotric您的類看起來不錯的已經0 – Abotric

+2

。所以這可能是您使用錯誤類的方式。這意味着你需要向我們展示使用這個類的代碼。也許你正在循環()中創建一個實例,這意味着它將在下一個循環中被銷燬(),或許你做了一些奇怪的事情。 – nos

+0

我正在使用這種方式:一個; a.function(NUM); 還有其他可以修改的東西。 – Abotric