gpt4 book ai didi

c++ - 以下代码段出了什么问题?

转载 作者:行者123 更新时间:2023-12-02 11:15:03 25 4
gpt4 key购买 nike

我知道这是相当基本的违规行为,但这是什么?

class xyz
{
void function1()
{
cout<<"in class";
}
};

int main()
{
xyz s1 = new xyz(100);
xyz s2 = s1;
s2.function1();
delete s1;
return 0;
}

使用 new进行内存分配时出了点问题。我相信,但我似乎无法理解其背后的基本原理和解决方案。

最佳答案

new返回指向对象(而非对象)的指针(xyz *),因此您应更正s1的类型:

xyz* s1=new xyz(100);

并通过指针调用该方法,您应该使用运算符 ->:
s1->function1();

这等效于取消引用指针并在对象上调用方法:
(*s1).function1();

关于c++ - 以下代码段出了什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39934945/

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