我正在写一些代码Arduino的,并试图在某些类使用继承。 我有一个类“演员”(我的基类)和类“大理石”(从演员继承)。 这里是头文件:
Actor.h:
#ifndef Actor_h
#define Actor_h
#include "Arduino.h"
class Actor
{
public:
Actor();
void speak();
private:
};
#endif
Marble.h:
#ifndef Marble_h
#define Marble_h
#include "Arduino.h"
#include "Actor.h"
class Marble : public Actor {
public:
Marble();
virtual void speak();
private:
};
#endif
Actor.cpp:
#include "Arduino.h"
#include "Actor.h"
Actor::Actor()
{
}
void Actor::speak() {
Serial.println("Actor");
}
Marble.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
所以。 看来,当我创建我的“演员”的阵列和尝试,并坚持大理石在那里它被强制转换为演员,或者类似的东西等。 问题是,我有一些不同的角色,将全部由“演员”继承,我想他们的数组迭代,并呼吁它们覆盖的方法。
所以,也许这个问题是我如何处理这个问题,或许有一些语法错误? 我不知道!
感谢您的帮助,凯文·