假设我们有一个带有标题parent.h
的父类以及两个子类child1.h
和child2.h
,因为它们都从父类继承,所以两个头文件都应包含parent.h
。在另一个文件中包含child1.h
和child2.h
将导致父类定义重复。避免这种情况的最佳方法是什么?使用#pragma once
是一种好的做法,还是还有其他方法可以解决此问题?
答案 0 :(得分:-1)
这就是将#ifndef
用作检入头文件的确切原因。
例如,您的“ parent.h”可能具有:
#ifndef PARENT_H
#define PARENT_H
.... //Your header definition
#endif
然后,在child1.h
和child2.h
#ifndef PARENT_H
#include "parent.h"
#endif
....//Your source code
答案 1 :(得分:-1)
是的,您可以使用编译指示或#ifndef
#ifndef _AUTOMOBILE_H
#define _AUTOMOBILE_H
//...
#endif