如何从对象内部访问变量

How to access a variable from inside an object

本文关键字:访问 变量 内部 对象      更新时间:2023-10-16

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

我对指针不太熟悉,所以之前说的话基本上都是直接跳过我的头。

对话的相关部分:

[Elliot:]我有一个主Map对象。我有几个"项目"对象,都需要能够访问相同的地图对象。我以为指针是解决这个问题的关键。我错了吗?

[…]

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

[muntoo:]哦,好吧,把Items放在Map里面。

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

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

作为一个过于宽泛的答案,您需要为您试图使用的变量提供一个可寻址的上下文。它的真正含义取决于你想做什么,以及你想在代码的什么地方做。变量是全局的,是另一个类的成员,可以静态访问吗?查看CPlusPlus.com的变量教程作为一般参考,如果你是初学者,Stroustrup的编程:使用c++的原理和实践,如果你更喜欢看书。

作为对你的澄清的回应,这是从这里修改的:

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

我们在CRectangle类的main()方法中创建了一个类型为MyWeirdShape的新对象,然后调用area()来获取它的大小。如果这是一个静态方法,我们可以跳过新对象的创建,只调用MyWeirdShape::area()

假设我有两个类

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
}

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

apple_ptr = new apple();

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