如何从对象内部访问变量
How to access a variable from inside an object
如何使用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();
这是你想知道的吗?请评论!
相关文章:
- 尝试通过多个向量访问变量时,向量下标超出范围
- 通过按地址访问变量
- 通过 get-Method 访问变量在类外不起作用
- 是否可以使用指针访问变量以避免直接编辑变量?
- 我无法访问变量的值,即使我通过范围传递了它
- 简单的问题 - 如何从单独的"结构"内的'class'访问变量?
- (C++) 从另一个类访问变量时值无效
- 返回实例变量的c++方法可以访问变量中的数据,但不能更改它,但在编译时不会生成错误
- 是否可以从字符串访问变量?
- 变量 z 无法从其他函数访问变量 x
- 如何在 C++ 中从 void 返回函数访问变量
- 在链接的程序集文件中,我想从 c++ 调用代码访问变量.是否可以在不触发访问冲突的情况下执行此操作?
- 在C 中本地声明隐藏的封闭范围(而非全局)中访问变量
- 从函数中删除动态内存分配,但无法访问变量
- 如何从派生类中的基类访问变量的值?
- 如何通过指针更快地访问变量,然后直接访问变量?
- 如何在公共类 c++ 中访问变量的值
- 从 Visual Studio 中的多个源文件访问变量
- 使用命名空间和模板类访问变量
- 从子对话框访问变量