C ++ разыменование между указатель

Допустим, у меня есть класс Foo

class Foo {
}

Я выполняю следующие задания:

Foo *ptrFoo=new Foo();

Foo &ref=*(ptrFoo);  //question 1
Foo afoo=*(ptrFoo); //quesion 2

Мои вопросы:

1 ) При назначении "& ref", что происходит внутри с точки зрения памяти? Это просто присвоение адреса памяти "ptrFoo" "ref"?

2) При присвоении "afoo", что случаться ds? Вызывает ли он конструктор копирования? Это означает, что память выделяется для двух объектов Foo? т.е. «afoo» и ранее назначенная память для «ptrFoo»?

3) Скажем, у меня есть метод под названием «void methodBar (const Foo & instance)» Если я передаю «ptrFoo» как:

methodBar ((* preFoo));

Что здесь означает "const"?

5
задан Ashika Umanga Umagiliya 24 November 2011 в 05:48
поделиться