Это - вполне, вероятно, очень глупый вопрос, но я должен быть уверен. Мне дали объявление класса в заголовочном файле, например.
#ifndef file_H
#define file_H
class ex{
private:
public:
};
#endif
и я был обязан писать определения метода в том же файле, который я сделал, моим вопросом является "#endif", остается, где это сразу после того, как объявление класса или он идут в конце моего файла после определений метода класса?.
В конце файла.
Цель этой формы данного шаблона #ifndef
- предотвратить ситуацию, когда одно и то же объявление или определение появляется дважды в единице компиляции.
Это делается потому, что файл C может включать несколько файлов H, которые, в свою очередь, могут включать один и тот же файл. Если бы вы просто запустили препроцессор без них, у вас было бы несколько копий H-файла. Таким образом, у вас есть несколько копий, но препроцессор игнорирует все после первой встречи.
Поскольку вы не должны определять что-либо более одного раза, если вам нужно поместить определения методов в заголовочный файл, поместите их в #endif
.