Чтобы избежать многократного включения файла заголовка, один из моих друзей предложил следующий способ
#ifndef _INTERFACEMESSAGE_HPP
#define _INTERFACEMESSAGE_HPP
class CInterfaceMessage
{
/ /Declaration of class goes here
//i.e declaration of member variables and methods
private:
int m_nCount;
CString m_cStrMessage;
public:
CString foo(int);
}
#endif
, где _INTERFACEMESSAGE_HPP - это просто идентификатор
, но когда я объявляю класс с помощью Visual Studio 2005 IDE, я получаю выражение как { {1}} #pragma once в начале определения класса когда я воспользовался помощью msdn, чтобы найти цель #pragma once , он дал мне следующее объяснение
«Указывает, что файл будет включен (открыт) только один раз компилятором при компиляции файла с исходным кодом».
Кто-нибудь, пожалуйста, скажите, какой подход правильный? Если оба верны, то в чем разница? один подход лучше другого?