更改班级成员地址

时间:2015-04-17 20:07:50

标签: c++ class pointers properties

汇总:

是否可以更改类成员属性的内存地址?


是什么引导我做这个问题:

我不确定我想要做什么会导致我的预期行为,即使它按预期工作,如果它是我应该做的。

所以,我有一个我想从磁盘读取的成员属性,例如来自prop的{​​{1}}。我从磁盘MyClass读取属性的例程我无权访问该实现,但它使用指向该类型的指针来填充文件上的值。

在文档中它说如果属性不存在,指针可能为null,虽然我不确定它是否会将其设置为null,或者是因为它期望我输入指向该函数的空指针。

因此,我使用getVarOnFile指针,而不是使用destVar指针,然后将localVar设置为destVar

但是我不确定我是否应该这样做,这似乎会分段内存,其中大部分成员都在内存中,但不是我设置到文件保留的内存位置的内存。 / p>

localVar

我不确定原始类属性成员保留的原始内存位置会发生什么变化,该位置被替换为新位置。它将被释放,或者这将是内存泄漏?

1 个答案:

答案 0 :(得分:3)

  

更改班级成员地址

如果我理解你的问题,那是不可能的。

说你有:

struct Foo
{
   int a;
};

Foo f;

创建f后,ff.a的地址不可更改。您只能修改其值。