关于C++类的重复定义问题

2025-05-04 10:58:51
推荐回答(3个)
回答(1):

头文件可能被重复include,我们无法防止头文件被重复include,但可以保证头文件的内容不被重复include。需要使用预编译指令和宏,以point.h为例:

#ifndef POINT_H // 如果没定义POINT_H 
#define POINT_H // 则定义POINT_H

class Point { // 则定义class
... ...
};

#endif /* POINT_H */

如果宏POINT_H 没被定义,则定义它并且定义class。当重复include这个头文件的时候,则第一句会检测到POINT_H 被定义了,就跳过class的定义,不会产生重复定义了。

回答(2):

在头文件中加
#ifndef
#define POINT_H

//你的Point类定义内容。

#endif

回答(3):

头文件开始 加上
#pragma once