C ++ разница между ссылками, объектами и указателями - PullRequest
15 голосов
/ 11 июля 2010

Это вопрос из экзамена на продвинутом курсе по ООП, который преподается на C ++ (в университете TAU, в этом семестре):

Q: В чем разница между указателем C ++ и ссылкой?

A.  A reference is the entire object while a pointer is only the address of it.
B.  The same meaning, and difference is only in syntax and usage.
C.  The syntax used to access the object.
D.  Pointers are simple address to the object while a reference uses the virtual table.

Какой правильный ответ?

Учитель курса утверждает, что A является правильным, и что ссылка на объект - это фактически сам объект.Это верно?Я понимаю, что доступ к ссылке эквивалентен доступу к самому объекту, однако при уничтожении ссылки мы не разрушаем сам объект.Ссылка - это альтернативное имя для объекта, но говоря, что reference == object true?

Кстати, лектор дал следующую ссылку на faq в поддержку своего утверждения , цитата:

"Важное примечание. Несмотря на то, что ссылка часто реализуется с использованием адреса на базовом языке ассемблера, не следует воспринимать ссылку как забавный указатель на объект. Ссылка - это объект . Это не указатель на объект и не копия объекта. Это объект. "

Но, тем не менее, я считаю,это неверно.

Ответы [ 11 ]

0 голосов
/ 11 июля 2010

Вопрос не об объектах и ​​ссылках, а об указателях и ссылках. Дело в том, что указатели обозначают область памяти, а ссылки обозначают объект - семантическую конструкцию более высокого уровня. Просто как тот.

И учитель уже все равно дал вам ответ: A -> правильный ответ.

Удачи в учебе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...