如何通过指针改变class成员值
How to change class member value by pointer
此函数是 class 称为 ClipInterface 的一部分,它提供了一个 GUI
从给定的 Clip 对象编辑一些成员值。
为此,我正在使用接收 Clip 对象的函数
通过指针,然后它访问它的一些成员来修改它们如下:
void ClipInterface::update(Clip* _clip){
//p_clip is a pointer declared in the .h file so it can
//work across the whole class
p_clip = _clip;
for (int i = 0; i < p_clip -> stepSequence.size(); ++i){
stepToggles[i] -> active = p_clip -> stepSequence[i];
}
for (int i = 0; i < p_clip -> stepSequence.size(); ++i){
*p_clip -> stepSequence[i] = stepToggles[i] -> active;
}
}
通过使用前面的表达式,程序可以编译,但是当我尝试 tu 运行 时它给了我一个分段错误。
题目是:
如何通过指针修改class成员值?我试过是什么
在这里,但我遇到了分段错误。
这个表达式中的什么导致了分段错误?
提前致谢。
*p_clip -> stepSequence[i] = stepToggles[i] -> active;
这里的p_clip
已经是你应该使用的指针了;
p_clip -> stepSequence[i] = stepToggles[i] -> active;
要通过指针访问结构的成员,请使用箭头运算符。
您可以使用其中之一
(*p_clip).stepSequences[i] = stepToggle
首先取消引用指针以获取对象然后获取成员
或者使用等价的箭头运算符,效果相同
p_clip->stepSequences[i] = stepToggle
此函数是 class 称为 ClipInterface 的一部分,它提供了一个 GUI 从给定的 Clip 对象编辑一些成员值。
为此,我正在使用接收 Clip 对象的函数 通过指针,然后它访问它的一些成员来修改它们如下:
void ClipInterface::update(Clip* _clip){
//p_clip is a pointer declared in the .h file so it can
//work across the whole class
p_clip = _clip;
for (int i = 0; i < p_clip -> stepSequence.size(); ++i){
stepToggles[i] -> active = p_clip -> stepSequence[i];
}
for (int i = 0; i < p_clip -> stepSequence.size(); ++i){
*p_clip -> stepSequence[i] = stepToggles[i] -> active;
}
}
通过使用前面的表达式,程序可以编译,但是当我尝试 tu 运行 时它给了我一个分段错误。
题目是:
如何通过指针修改class成员值?我试过是什么 在这里,但我遇到了分段错误。
这个表达式中的什么导致了分段错误?
提前致谢。
*p_clip -> stepSequence[i] = stepToggles[i] -> active;
这里的p_clip
已经是你应该使用的指针了;
p_clip -> stepSequence[i] = stepToggles[i] -> active;
要通过指针访问结构的成员,请使用箭头运算符。
您可以使用其中之一
(*p_clip).stepSequences[i] = stepToggle
首先取消引用指针以获取对象然后获取成员
或者使用等价的箭头运算符,效果相同
p_clip->stepSequences[i] = stepToggle