假设我有一个叫做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”有何重要性?