正在更改类成员地址
Changing class member address
总结:
是否可以更改类成员属性内存地址?
是什么导致我提出这个问题:
我不确定我想做的事情是否会导致我预期的行为,即使它像预期的那样起作用,我也不确定它是否是我应该做的
所以,我有一个成员属性,我想从磁盘中读取,比如说它是MyClass
中的prop
。从磁盘getVarOnFile
读取属性的例程我没有访问实现的权限,但它使用指向类型的指针来填充文件上的值。
在文档中,它说如果属性不存在,指针可能为null,尽管我不确定它是否会将其设置为null,或者是因为它希望我输入指向函数的null指针。
因此,我不使用destVar
指针本身,而是使用localVar
指针,然后将destVar
设置为localVar
。
但我不确定我是否应该这样做,这似乎会分割内存,其中大多数成员都在内存中,但不是我设置为文件保留的内存位置的内存。
void readHelper(const char* propOnFile, float*& destVar)
{
// check if propOnFile exists
float *localVar = nullptr;
getFileOnVar(propOnFile,localVar);
if ( localVar != nullptr){
destVar
}
}
class MyClass {
private:
float prop;
public:
static MyClass *read(const char* file){
readHelper("prop",&(this->prop));
}
};
我不确定为原始类属性成员保留的原始内存位置会发生什么,它被替换到了一个新的位置。它将被释放,或者这将是内存泄漏?
更改类成员地址
如果我正确理解你的问题,那是不可能的。
假设你有:
struct Foo
{
int a;
};
Foo f;
创建f
后,f
和f.a
的地址不可更改。您只能修改它们的值。
相关文章:
- C++:用户定义的类,以成员字段作为地址
- 为什么成员函数地址离自由函数这么远?
- Assimp 库错误:获取打包成员的地址
- C++ - 非静态 void* 成员,指向具有相同地址但不同值的不同对象的另一个非静态成员
- 在指向现有内存地址的 hpp 文件中声明成员函数的最佳方法
- C++多态性:有没有办法找到对象成员函数的地址?
- 如何获取结构体成员的地址
- 使用成员的地址初始化基类是否合法?
- C++:获取包含成员子对象的完整对象的地址
- 从对象及其成员的地址获取指向成员的指针
- 获取未初始化对象成员的地址是否定义良好?
- 指向未由对象地址初始化的对象的指针如何将值分配给类的数据成员
- 类成员地址与类指针值相同
- 正在更改类成员地址
- 继承成员地址的C++标准
- C++中构造函数中的数据成员地址
- 正确传递类的成员地址并能够调用它
- 通过成员地址激活嵌套工会合法吗
- 工会成员地址需说明
- 获取函数成员地址