2013-04-23 3 views
0

В программе, которую я поддерживаю, я нашел класс с экземпляром ключевого слова в конце его. Как так:Где я могу узнать о ключевом слове C++?

class SomeClass{ 
public: 
} instance; 

Программа представляет собой DLL, и это «SomeClass» является первым объектом, созданным при загрузке DLL. Откуда возникает ключевое слово экземпляра? Это специфично для gcc? Где я могу узнать больше об этом?

+6

Это * не * ключевое слово, это идентификатор экземпляра объявленного класса. Это эквивалентно написанию 'class SomeClass {...}; SomeClass instance; '. – dmckee

ответ

2

Слово instance не является ключевым словом. Вы создаете объект класса типа SomeClass под названием instance.

a list of C++ Keywords Я нашел из поиска Google.

4

Синтаксис определения структуры или класса, что-то вроде этого:

(class | struct) [класс тегов] {члены}экземпляры;

Я использую [ и ] для обозначения необязательного элемента и курсива для обозначения произвольного списка элементов.

Другими словами, вы можете определить только сам тип, что-то вроде:

class xxx { /* ... */ }; 

... или вы можете определить только экземпляр типа:

class { /* ... */ } an_instance; 

... или можно сделать так:

class xxx { /* ... */ } another_instance; 

... или вы можете определить количество экземпляров, если вы хотите:

class xxx { /* ... */ } instance1, instance2, instance3; 

Последние не являются ключевыми словами - это обычные переменные. Большинство людей, которые хотели сделать то же самое, что, вероятно, написать два отдельно:

class SomeClass { 
    /* ... */ 
}; 

SomeClass instance; 

Для большинства практических целей, это является синонимом форме в вопросе.

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