gpt4 book ai didi

c++ - 将指针与类结合使用会返回垃圾值

转载 作者:搜寻专家 更新时间:2023-10-31 00:39:14 24 4
gpt4 key购买 nike

这是今天早些时候测验的代码。语言:C++。

class Shape
{
protected:
int *x;
int *y;
public:
void draw()
{
//we were supposed to add random code here.
}
};

我们被要求创建一个我们选择的重载运算符并在 main 中实现它。我有点被指针吓倒了,所以我决定创建一个像这样的构造函数:

class Shape
{
protected:
int *x;
int *y;
public:
void draw()
{
cout<<*x<<endl;
}
Shape(){};
Shape{int a, int b)
{
x = &a; //this I thought would allow *x to act just like a normal variable.
y = &b;
}
//code for operator overloading.
};

我的印象是我已经完成了测验,但当我继续尝试在家里的计算机上实现它时,我意识到绘图函数返回垃圾值/内存地址。结果,其他一切都受到影响。你能告诉我为什么会这样吗?它与指针的范围有关吗?我希望能够将指针用作常规变量。只是一个学生。提前致谢!

最佳答案

如果这是 C++,就像它看起来的那样,那么您的问题是您正在将指针分配给构造函数的参数地址。

构造函数参数在调用构造函数时创建,在构造函数销毁时销毁,因此,构造函数销毁后,您的指针将指向垃圾。将指针分配给非函数局部变量。

关于c++ - 将指针与类结合使用会返回垃圾值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16524574/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com