#ifndef #define #endif 作用是什么?
答: 防止头文件重复包含。
举例说明:
类定义文件 a.h
#ifndef A_H
#define A_H
#include <iostream>
class A
{
public:
A();
~A();
void show();
private:
int m_val;
};
#endif // A_H
类实现文件a.cpp
A::A()
{
m_val =1;
}
A::~A()
{
}
void A::show()
{
std::cout << m_val;
}
类使用文件 main.cpp
#include “a.h”
int main(int argc, char* argv[])
{
A ma;
return 0;
}
分析:第一次使用头文件a.h时,A_H并未定义,所以此时定义A_H,然后进入类A的定义,直到结束。第二次使用头文件a.h时,A_H已经定义。此时,跳过类A的定义,防止了头文件的重复包含。