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“
签出转发声明:非常感谢!