C++访问容器类方法 我正在学习C++继承,我正在尝试访问容器类方法。< /P>

C++访问容器类方法 我正在学习C++继承,我正在尝试访问容器类方法。< /P>,c++,C++,我有一个环境类,它有一个名为drawText的公共方法 Environment类中有一个Robot类Robot: robot = new Robot; 如何从Robot类内部调用drawText 提前谢谢你 您可以添加Robot.h环境参考 //robot.h namespace envrNamespace { class Environment; }; namespace rbtNamespace { class Robot { Environment

我有一个环境类,它有一个名为drawText的公共方法

Environment类中有一个Robot类Robot:

robot = new Robot;
如何从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);

您可以添加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_;
};
这就是您需要的:

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++中随意地使用新的,它可能是错误的。C++与java不一样。谢谢你的注意。我应该和机器人一起去吗;那么?是的,这是最好的方法。没有明确的方法让一个物体知道它包含了什么。如果你需要它,机器人对象必须做一些事情,比如接收一个指针或者引用包含的类。我完全误解了这个问题,很抱歉我关闭了投票:如果你在C++中随意地使用新的,它可能是错误的。C++与java不一样。谢谢你的注意。我应该和机器人一起去吗;那么?是的,这是最好的方法。没有明确的方法让一个物体知道它包含了什么。如果需要,Robot对象将必须执行一些操作,例如接收指向包含类的指针或引用。我完全误解了这个问题,很抱歉我关闭了投票: