问答详情
源自:3-8 巩固练习

传参的问题

求大神,为什么要这句hunting(p);而不是这句hunting(&p);void hunting(CanShut *s)不应该传入一个地址吗?

提问者:2541644246 2016-03-18 20:58

个回答

  • 萝卜白菜西瓜
    2016-03-18 21:55:20

    如果你定义的是Gun p,那么需要使用&取地址,也就是hunting(&p)。但是如果你定义的是Gun &p = new Gun(),那么gun本来就是代表的地址,所以直接使用即hunting(p),根据题目知道最后需要释放内存,所以肯定是在堆上定义的,所以应该使用Gun &p = new Gun()这种形式。