Обсуждение:Ссылка (программирование)

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

"Ссылки в C++ должны быть связаны с каким-либо объектом. Таким образом, "нулевые ссылки" (не связанные с каким-либо объектом), в C++ отсутствуют. Разыменование ссылок в C++ не требует специального оператора. Таким образом, в C++ ссылки - в некотором смысле другая синтаксическая форма записи указателей."

Несколько замечаний: 1) Ссылки в Си++ могут быть привязаны не только к объектам (включая временные объекты), но и к функциям и функциям-членам. 2) Все-таки нельзя сказать, что ссылки в Си++ -- это альтернативный синтаксис указателей. Ссылки имеют собственную самостоятельную семантику, бо́льшая часть которой не имеет аналогов в семантике указателей. Ivan A. Kosarev 19:01, 19 августа 2008 (UTC)[ответить]

"Перечисления в языке C++ прямо наследуют поведение перечислений языка C, за исключением того, что перечисляемый тип в C++ — настоящий тип, и ключевое слово enum используется только при объявлении такого типа."

Перечисление в Си -- точно такой же "настоящий" тип, как и в Си++. Возможность опускать enum, struct, union и class при тегах типов -- это заслуга организации поиска имен в Си++, но не семантики самих этих классовых типов и перечисления.

И все же разница между перечислениями в Си и Си++ есть. В Си константы перечисления всегда имеют тип int. В Си++ они имеют тип самого перечисления. Кроме того, в Си++ определено целочисленное продвижение для перечислимых типов -- до целочисленного типа, являющегося подлежащим типом этого перечисления. Разные перечислимые типы в Си++ могут иметь разные подлежащие типы, в зависимости от конкретной реализации языка и значений констант этих перечислений. Ivan A. Kosarev 19:13, 19 августа 2008 (UTC)[ответить]