如何从对象内部访问变量

时间:2011-11-01 02:31:16

标签: c++

如何使用C ++从对象内部访问外部变量?你会用指针吗?什么是正确的语法?

我对指针并不熟悉,所以之前所说的任何内容都基本上直接射到了我的头上。

4 个答案:

答案 0 :(得分:1)

chat的相关部分:

  

[Elliot:]我有一个主要的Map对象。我有几个'Item'对象,所有这些对象都需要能够访问同一个Map对象。我在假设指针是关键。我错了吗?

     

[...]

     

[Elliot:]我的items需要访问Map对象,因为他们需要告诉它们在哪里。

     

[muntoo:]哦,好吧,Items内有Map

class Map {
    std::vector<Item> items;
};

答案 1 :(得分:0)

作为一个过于宽泛的答案,您需要为您尝试使用的变量设置可寻址的上下文。这真正意味着什么取决于你想要做什么以及你想要做的代码在哪里。变量是全局的,是另一个类的成员,是否可以静态访问。如果您已经开始使用,请查看CPlusPlus.com's tutorial on variables作为一般参考;如果您更像书籍人员,请查看Stroustrup的Programming: Principles and Practice Using C++

在回复您的澄清时,会从here修改

int main () {
  CRectangle rect (3,4);
  MyWeirdShape wshapeA;
  cout << "rect area: " << rect.area() << endl;
  cout << "Weird Shape area: " << wshapeA.area() << endl;
  return 0;
}

我们位于main()类的CRectangle方法内,并创建一个MyWeirdShape类型的新对象,然后调用area()来获取其大小。如果这是一个静态方法,我们可以跳过创建新对象,只需调用MyWeirdShape::area()

答案 2 :(得分:0)

在对象中存储指向foo的指针(这意味着您必须将其设置到正确的foo处)或将foo的引用传递给对象类中调用的方法SaySomething()。在前一种情况下,您将不得不检查NULL指针。在后者中,不允许使用NULL指针。

答案 3 :(得分:0)

假设我有2个班级

class apple
{
   public:
       double get_wt();//this returns the wt variable
   private:
       double wt;
}

class fruit
{
    public:
       double get_apple_wt();//this returns the wt variable of an apple object whose memory location is stored in apple_ptr

    private:
       apple *apple_ptr;//points to the memory location of apple object
}

在上面的例子中,如果你动态分配了苹果对象,get_apple_wt()将完全有效:

apple_ptr = new apple();

这是你想知道的吗? 请做评论!