【发布时间】:2011-11-24 05:48:32
【问题描述】:
假设我有一个班级 Foo
class Foo {
}
我做以下任务:
Foo *ptrFoo=new Foo();
Foo &ref=*(ptrFoo); //question 1
Foo afoo=*(ptrFoo); //quesion 2
我的问题:
1) 当分配给“&ref”时,内存方面会发生什么内部情况? 是否只是将“ptrFoo”的内存地址分配给“ref”?
2) 分配给“afoo”时,发生了什么?它是否调用了复制构造函数?这意味着为两个 Foo 对象分配了内存?即“afoo”和之前为“ptrFoo”分配的内存?
3) 假设我有一个名为“void methodBar(const Foo &instance)”的方法 如果我将“ptrFoo”传递为:
methodBar((*preFoo));
这里的“const”有什么意义?
【问题讨论】:
标签: c++ pointers memory-management