#ifnotdef:错误" multiple definition of 'member function' "
#ifnotdef : Error " multiple definition of 'member function' "
有人能告诉我为什么要获得吗
" multiple definition of 'member function' "
错误,尽管我在类标题
#ifnotdef
不工作。正确的预编译器开关是#ifndef
或#if !defined()
。
似乎标头包含在多个模块中,并包含函数定义。至于#ifnotdef,我认为这是一个拼写错误,不是吗?否则,编译器将发出另一个错误。
假设标头包含保护:
#ifndef SOME_HEADER_H // not #ifnotdef
#define SOME_HEADER_H
// header contents
#endif
这只会防止在单个翻译单元中包含多个内容。如果您将其包含在多个翻译单元中,它将不会阻止其中定义的任何内容被多重定义。
为了解决这个问题,头中声明的任何函数的定义都可以是:
- 移动到源文件中,因此只有一个定义;或
- 使得
inline
,从而允许多个定义;或 - 如果它们是成员函数,则移到类定义中,以便它们隐式内联
相关文章:
- C++复制函数重载导致"must be a nonstatic member function"错误
- C++ "Invalid use of 'this' in non-member function" ,
- C++线程"Call to non-static member function without an object argument"
- VS 代码C++扩展给出错误"namespace has no member function"
- 无法在模板中"store member function"
- 为什么这句话"The expression can be used only as the left-hand operand of a member function call"在 [expr.re
- 如何修复库中的"invalid use of non-static member function" 导入另一个库
- "Member function must be called or its address taken in function" C++错误
- 为什么我会看到"member function with the same name as its class must be a constructor"?
- 在这种情况下如何解决"Reference to non-static member function must be called"?
- 在C++中接收错误"member function must be called or its address taken in function"
- "State pattern" vs "one member function per state" ?
- C++ substr 方法 - "invalid use of ‘this’ in non-member function"
- 派生类的新构造函数未生成:"overloaded member function not found"
- 解析" cannot define member function ... within .."
- "invalid use of non static member function" 这是什么?
- "Cannot call member function ... without object"在未评估的上下文中 - GCC 错误?
- 提升时出错"member function redeclaration not allowed":线程
- "overloaded member function not found"参考资料
- 在头文件上为类声明 = 和 [] 运算符,"must be a nonstatic member function"错误