c++ - 如何通过指针更改类成员值

标签 c++ class pointers class-members

此函数是名为 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;
    }
}

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

问题是:

  • 如何通过指针修改类成员值?我试过是什么 在这里,但我遇到了段错误。

  • 这个表达式中的什么导致了段错误?

提前致谢。

最佳答案

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

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

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

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

关于c++ - 如何通过指针更改类成员值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50827317/

相关文章:

c++ - 不允许使用非成员函数重载 C++ 转换运算符的理由是什么

java - 如果我创建了父类的数组,如何通过数组对象访问子类的方法?

c++ - 访问私有(private)变量对象

arrays - D 编程语言中的指针、函数和数组

c - 使用 -> 访问结构体的属性,但编译器错误告诉我使用 ->?

c++ - std::shared_ptr 中的错误?

c++ - 限制嵌套结构中的构造函数范围

c++ - Qt中如何编写Sqlite数据库

python - 将类的实例分解为列表,或 : a better way to sum class variables?

c - 编写一个程序来读取排序并写入数组