1
Wins0n 2014-02-19 08:51:14 +08:00
要记得delete
|
2
timothyqiu 2014-02-19 09:07:24 +08:00
Node *a = new Node(3) 的意思是:
1. 在堆上创建一个 Node 对象 2. 在栈上创建一个名为 a 的指针指向它 Node b(3) 的意思是: 1. 在栈上创建一个 Node 对象,名为 b p.s. a->val 是 (*a).val 的语法糖而已... |
3
ivanlw OP 所以,实际中用起来应该如何选择呢?
|
4
wog 2014-02-19 09:40:48 +08:00
再补充楼上的一下
虽然a 和b 出了main的作用域都会失效,但是a指向的实体,只要不delete,会一直存在。b不用delete |
5
baka 2014-02-19 10:16:42 +08:00 1
一般不在栈上实例化,并且对象传参时都会使用指针形式(或c++引用),避免复制栈存储。
另外,指针形式支持多态,可以根据虚表选择继承链上的类。 |