如何修复空虚拟方法的"warning: no return statement in function returning non-void [-Wreturn-type]"
How to fix "warning: no return statement in function returning non-void [-Wreturn-type]" for empty virtual method
我有一个带有许多空的虚拟方法的基类,这些方法已在各种子类中实现,例如:
//base class (has no attribute A or B)
virtual double getAttributeA(){} //implemented in subclass A
virtual int getAttributeB(){} // implemented in subclass B
我需要空功能,因为我需要在基类指针上调用子类功能。
这个编译良好,但是我得到了警告,因为我显然定义了返回类型(子类需要的类型),但不要返回任何内容。
我该如何解决此警告?
谢谢!
我需要空功能,因为我需要在基类指针上调用子类功能。
如果您将它们声明为纯虚拟的,例如:
virtual double getAttributeA() = 0;
virtual int getAttributeB() = 0;
这意味着基类本身根本不需要实现,但是派生的类必须实现它们。
我得到警告,因为我显然定义了返回类型(子类需要的类型),但不要返回任何内容。
如果您声明了非流动返回类型,则必须返回某物:
virtual double getAttributeA() { return 0.0; }
virtual int getAttributeB() { return 0; }
相关文章:
- 将 lambda 表达式传递给 std::function in C++
- 从 std::function in C++ 访问模板化 lambda
- C++ "Invalid use of 'this' in non-member function" ,
- "Warning : No return statement in function returning non-void"是什么意思?
- 如何修复"unresolved external symbol _gladLoadGLLoader referenced in function _main"和"unresolved external
- 使用 VS2017 构建 OpenSSL 后出现一些链接错误。 " OPENSSL_init_ssl referenced in function _main " ?
- 'type_alias<char[N]>{}' VS 'char[N]{}' in function's arguments
- С 错误"s1, s2 are used uninitialised in this function"
- "How to make a recursive call for palindrom numbers without reverse function in c++?"
- LLVM:如何修复"Referring to an argument in another function"
- "Member function must be called or its address taken in function" C++错误
- OpenCV (gamma) in addWeighted function
- 如何修复空虚拟方法的"warning: no return statement in function returning non-void [-Wreturn-type]"
- hash_value function in C++11
- UnsatisfiedLinkError for native cpp function in Android app
- ispunct() Function in C++
- .cpp文件的组合框Scopes和Function in Scope在VS2008 sp2中不起作用.知道为什么这些组合
- sqrt function in C++
- Opencv push_back function in Mat
- Visual Studio 2008 - "Evaluate function" in C++