1
我正在學習C++的繼承,我試圖訪問一個容器類的方法。C++訪問容器類的方法
我有一個環境類有一個公共方法稱爲drawText()。
的環境類有一個機器人類機器人裏面:
robot = new Robot;
我怎麼能說的drawText()從機器人類裏面?
預先感謝您!
我正在學習C++的繼承,我試圖訪問一個容器類的方法。C++訪問容器類的方法
我有一個環境類有一個公共方法稱爲drawText()。
的環境類有一個機器人類機器人裏面:
robot = new Robot;
我怎麼能說的drawText()從機器人類裏面?
預先感謝您!
可以在Robot.h環境參考
//robot.h
namespace envrNamespace
{
class Environment;
};
namespace rbtNamespace
{
class Robot
{
Environment* _parent;
void setParent(Environment* _env) {_parent = _env;};
Environment* getParent() {return _parent;};
//...
}
};
//Environment.cpp
Robot* robot = new Robot();
robot->setParent(this);
添加這是你所需要的:
class Environment {
public:
Environment() { }
~Environment() { }
setRobot(Robot* robot) {
robot_ = robot;
}
drawTest() { }
private:
Robot* robot_;
};
class Robot {
public:
Robot(Environment* env) {
env_ = env;
}
void foo() {
env_.drawTest();
}
private:
Environment* env_;
};
如果你正在使用C中的'new'隨便++,它可能是錯誤的。 C++與Java不同。 –
感謝您的注意。我應該去機器人機器人嗎?然後? –
是的,這是最好的方法 –