2010-11-14 6 views
0

Я думаю, что в C++ есть зарезервированные ключевые слова, почему они называются «зарезервированными ключевыми словами» и классифицируются как разные?зарезервированные ключевые слова в C++

+1

Поскольку мы говорим о том, как называются вещи, я предполагаю, что вы имели в виду * зарезервированные * ключевые слова? – stakx

+2

Этот комментарий зарезервирован. Мы планировали использовать его, но комитет не смог договориться о приемлемой формулировке, поэтому мы откладываем это до следующего стандарта. – SingleNegationElimination

+0

Это зависит от языка? – Sudantha

ответ

5

Слова, используемые в языке (if, for, while, struct и т.д.) иногда называются зарезервированными словами или ключевыми словами. Я подозреваю, что многие люди также называют их зарезервированными ключевыми словами.

Однако есть также слова, которые Комитет может захотеть использовать в будущем, но которые в настоящее время не используются. Я бы рассмотрел эти зарезервированные ключевые слова. В Java goto зарезервированное слово, которое в настоящее время не используется (хотя я считаю, что идея заключается в том, что он никогда не будет использоваться). Этот вид зарезервированного ключевого слова не разрешен как имя переменной, имя функции, class, struct или enum имя и т. Д. Но без использования языка на сегодняшний день это действительно не допустимо в действительном C++.

1

Ключевые слова: «if» или «while», используемые в синтаксисе языка. Если они зарезервированы, они не могут использоваться в качестве идентификаторов. Если они не зарезервированы (ключевые слова контекста:), они могут использоваться как идентификаторы, они используются как ключевые слова только в определенных контекстах (где идентификаторы не могут появиться или если они могут, есть правило, которое дает приоритет идентификатор или функция ключевого слова). C++ 0X, вероятно, будет иметь контекстные ключевые слова. Язык славится своим (аb) используйте контекстные ключевые слова был PL/I, в котором вы могли бы написать что-то вроде:

IF IF THEN THEN = ELSE; ELSE ELSE = THEN; 

(Очевидно, что разумный подход заключается в рассмотрении даже контекстные ключевые слова зарезервированы, утилита контекстных ключевые слова помогает миграции).

0

И давайте закончим ключевую историю с C++: Когда я только начал изучать C++, у меня был худший учитель.

Одним из его заданий было написать «телефонную книгу». Дизайн, который нам давали, был довольно простым,

У вас есть класс телефонной книги, в котором хранится массив классов: friend. Еще в те дни, когда я учился на C++ у нас не было интернет.

Так что у половины из нас была проблема с компиляцией, а другая - нет. Наш учитель только пожал плечами и сказал: «Нет проблем, половина из вас не сработала». Нам потребовалось время, чтобы понять, что половина, у которой была проблема с компиляцией, была половиной того, что слово друга было разным в IDE, такое же цвет, что и ключевые слова struct \ enum \ class. Другая половина называется их Друг (столица F).

Смежные вопросы