c++中'class' type redefinition解决方案


定义了3个.cpp 文件,分别为Father ,Mather, Child , 在Father ,Mather 中定义Child为友元类,Father中fix为protected,Mather中sing为protected,然后在child中调用这2个方法。

为了在Child类中能够应用Father,Mather类,所以在Child.cpp中导入了,可是,编译时,报错,显示为:c++中'class' type redefinition

开始,不太明白错误在哪,找了许久,终于发现了问题所在:

   在测试源文件中,我导入了自定义的头文件family.h ,其中内容为: ,此处导入了Father,Mater 文件,所以此时主函数知道了Father,Mather类,所以当程序运行到Child类中时,已存在这2个类的定义,所以在Child中导入这2个类的源文件就产生了重复定义,所以只需在这两个类中加入,在类尾添加即可解决这个问题。


简单说说这些定义的作用:如果Father类定义了,则不必再定义,否则定义Father类。这样就可以避免重复定义该类了。


你可能感兴趣的:(linux/c/c++,备忘录)