我正在编写一些 Arduino 代码并尝试在某些类中使用继承。我有一个类“Actor”(我的基类)和一个类“Marble”(继承自 Actor)。以下是头文件:
演员.h:
#ifndef Actor_h
#define Actor_h
#include "Arduino.h"
class Actor
{
public:
Actor();
void speak();
private:
};
#endif
大理石.h:
#ifndef Marble_h
#define Marble_h
#include "Arduino.h"
#include "Actor.h"
class Marble : public Actor {
public:
Marble();
virtual void speak();
private:
};
#endif
演员.cpp:
#include "Arduino.h"
#include "Actor.h"
Actor::Actor()
{
}
void Actor::speak() {
Serial.println("Actor");
}
大理石.cpp:
#include "Arduino.h"
#include "Marble.h"
void Marble::speak() {
Serial.println("Marble");
}
最后,在循环函数中我这样做:
void loop() {
Marble marble;
Actor children[2];
children[0] = marble;
children[0].speak();
这导致打印“演员”。
我发现这个不错的链接似乎与我的问题相似,但该解决方案似乎对我不起作用: http ://arduino.cc/forum/index.php?topic=41884.0
所以。似乎当我创建我的“Actor”数组并尝试将 Marble 粘贴在其中时,它会被投射到一个 Actor 或类似的东西上。问题是,我将有几个不同的字符,它们都将继承自“Actor”,我想要一个它们的数组来迭代并在它们上调用覆盖的方法。
所以,也许问题是我如何解决这个问题,或者可能有一些语法错误?我不知道!
谢谢你的帮助,凯文