我知道这是相当基本的违规行为,但这是什么?
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();
https://stackoverflow.com/questions/39934945/