我有两个虚拟的问题让我困惑了一段时间.我确实在线搜索并阅读了很多c ++教程,但是我找不到具体的答案.
假设我们有一个名为Node的类,它是单链表的构建块.
class Node
{
int data;
Node* next;
}
Run Code Online (Sandbox Code Playgroud)
事实1:局部变量(非静态)将在相应函数退出时被销毁.
问题1:情况如何打击:
Node* func()
{
Node n;
Node* ptr=&n;
return n;
}
Run Code Online (Sandbox Code Playgroud)
节点n会被破坏吗?或者我们必须使用new运算符来创建节点并返回指向堆内存的指针.如果两种方式都有效,哪种方法更好?
问题2:如何为节点类编写析构函数?(我在stackOverflow上找到了一些类似的问题,但那些答案集中在链表的析构函数上.我已经得到了那个部分.我想要的只是Node类的析构函数).
---------------------------------------感谢大家!我知道了 - - - - - - - - - - - - - - - - - -
感谢所有给我建议或指出我的错误的人.我想我得到了答案.以下是我从你的答案中得到的一个注释,这真的打败了我的困惑.
我所知道的事实:
我的问题:
传递变量名作为参数和传递引用有什么区别?例如,
void func(int a); vs void func2(int&b);
太感谢了!