首页 > 解决方案 > 如何通过指针更改类成员值

问题描述

这个函数是一个叫做 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;
    }
}

通过使用前面的表达式,程序编译但是当我尝试运行它时它给了我一个分段错误错误。

问题是:

提前致谢。

标签: c++classpointersclass-members

解决方案


*p_clip -> stepSequence[i] = stepToggles[i] -> active;

这里p_clip已经是你应该使用的指针;

p_clip -> stepSequence[i] = stepToggles[i] -> active;

要通过指针访问结构的成员,请使用箭头运算符。


推荐阅读