如何使用C ++从对象内部访问外部变量?你会用指针吗?什么是正确的语法?
我对指针并不熟悉,所以之前所说的任何内容都基本上直接射到了我的头上。
答案 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();
这是你想知道的吗? 请做评论!