如何在 C++ 中使用此指针访问指针成员变量

How to access pointer member variable using this pointer in c++

提问人:Sarthak Gandhi 提问时间:11/13/2021 更新时间:11/13/2021 访问量:306

问:

课堂论文{

private:
int length;
int *width;

public:
void set_data(int length, int width){
    cout<<"inside set data"<<endl;
    this->length=length;
    this->width=&width;
}
void show_data(){
    cout<<"inside show_data"<<endl;
    cout<<this->length;cout<<this->(*width);
    cout<<this->(*width);
}

};

获取错误 cout<(*宽度);

如何使用此指针取消引用指针

C++ 指针 取消引用

评论

3赞 Victor Eijkhout 11/13/2021
你是说 ?*( this->width )
0赞 Nathan Pierson 11/13/2021
为什么是 a 而不是 ?widthint*int

答:

1赞 user12002570 11/13/2021 #1

您可以通过替换为以下内容来解决此问题:this->(*width)

*(this->width)

然后,该程序将工作,如下所示。

评论

0赞 Nathan Pierson 11/13/2021
这个程序是编译的,但如果你实际使用过,你会得到未定义的行为。 设置为指向临时变量的指针,因此在该变量的生存期结束后取消引用它是 UB。set_datashow_datathis->width = &widththis->width
0赞 user12002570 11/13/2021
@NathanPierson 是的,OP 应该相应/适当地处理这个问题。