Class Arduino C++;相互需要的班级

Class Arduino C++;相互需要的班级,class,arduino,arduino-c++,Class,Arduino,Arduino C++,下面是一个与我的问题相关的例子: class classA { private: int Value = 100; public: int get_Value() { return Value; } void set_Value(int p) { if (p == 0) Value = B.get_Value(); else Value = 5; } }; classA A = class

下面是一个与我的问题相关的例子:

class classA
{
private:
    int Value = 100;

public:
    int get_Value()
    {
        return Value;
    }
    void set_Value(int p)
    {
        if (p == 0) Value = B.get_Value();
        else Value = 5;
    }
};

classA A = classA();

class classB
{
private:
    int Value = 200;

public:
    int get_Value()
    {
        return Value;
    }
    void set_Value(int p)
    {
        if (p == 0) Value = A.get_Value();
        else Value = 5;
    }
};

classB B = classB();
问题是类A不能访问类B,因为它的定义低于它自己的定义。我的问题是,我如何定义它,以便A类可以访问B类。 我试着做一些类似
类b的事情
B类;B类=B类在classA开始之前


因为我对编程比较陌生,所以我不知道如何解决这样(可能很容易)的问题。希望得到一些帮助

这是循环依赖的问题。幸运的是,这个问题很容易解决:只需将声明和定义放在单独的文件中

类别A.h:

//包含防护装置以防止双重包含
#ifndef等级A\U H
#定义类A\u H
甲级
{
私人:
int值=100;
公众:
//这里我们只声明函数,不定义函数
int get_Value();
无效集_值(int p);
};
#endif//CLASS_A_H
B.h类:

//包含防护装置以防止双重包含
#ifndef B类
#定义类_B_H
B类
{
私人:
int值=200;
公众:
//这里我们只声明函数,不定义函数
int get_Value();
无效集_值(int p);
};
#endif//CLASS_B_H
现在我们需要在不同的文件中定义函数

ClassA.cpp:

#包括“A.h”
#包括“B.h”
//使用extern告诉编译器此声明可以
//在任何其他文件中找到,它不会作为
//只要能在某处找到
B类外部人员;
int classA::get_Value()
{
返回值;
}
void classA::set_值(int p)
{
如果(p==0)值=B,则获取_值();
else值=5;
}
ClassB.cpp:

#包括“A.h”
#包括“B.h”
//使用extern告诉编译器此声明可以
//在任何其他文件中找到,它不会作为
//只要能在某处找到
外部甲级;
int classB::get_Value()
{
返回值;
}
void classB::set_值(int p)
{
如果(p==0)Value=A.get_Value();
else值=5;
}
然后,在主文件中只包含两个标题,就可以开始了:

#包括“A.h”
#包括“B.h”
classB=classB();
classA=classA();

顺便说一句,当您在Arduino上时,您可以创建新的.h和.cpp文件,并将它们放在.ino文件旁边,应该可以找到它们。您甚至可以将它们放在文件夹中,但包含路径必须与每个文件相关,例如:
#include./include/file.h“

签出转发声明:非常感谢!