Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/140.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在arduino中使用类_C++_Arduino - Fatal编程技术网

C++ 在arduino中使用类

C++ 在arduino中使用类,c++,arduino,C++,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 =

我现在正在写一个类,我想在其中存储一个值。代码如下所示:

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值。我如何解决这个问题以在类中存储布尔值


谢谢大家。

你们的错误很可能是使用了
=
比较,而不是
=
赋值

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

你的意思不太清楚。ena是如何失去价值的?它是一个类成员变量。语句
ena==0不会更改ena
,并且应该生成编译器警告。该行应为
ena=0你是对的,我错误地将其复制到了forumOk,但是该代码应该可以工作,所以你需要显示使用该类的代码。对不起,我的错误-我从那时起编辑了我的帖子。当代码运行时,我可以在if(x==1)之后看到。。。ena的值设置为1,但再次调用该函数后,它已为0。@这样您的类看起来很好。所以你使用这个类的方式可能是错误的。这意味着您需要向我们展示使用该类的代码。也许你正在loop()中创建一个实例,这当然意味着它将在下一个循环中被销毁()也许你做了一些奇怪的事情;a、 函数(num);还有其他任何东西可以修改它。@Abotric根据您发布的代码,我们无法为您提供更多帮助,我的更正是-它应该可以工作,您一定做了一些错误的事情,而您的代码没有显示给我们。在何处以及如何创建实例?这个局部变量不是在循环中创建的吗?它在所有外部(不在循环()中,也不在设置()中)