KAc*_*ion 4 c++ virtual overriding c++11
我有一些课,比如
class object {
public:
virtual std::string name() const;
};
Run Code Online (Sandbox Code Playgroud)
它提供了一些接口,我希望所有派生都覆盖方法name.问题是,它没有被覆盖,在编译时没有任何中断,但是我在运行时遇到了问题.是否有任何方法可以强制执行方法覆盖?编辑:我想强制覆盖所有派生,而不仅仅是直接的欺骗!
您可以通过检查其指向成员的指针类型来检查是否在基类中定义了成员:
static_assert(std::is_same<decltype(&U::name), std::string (U::*)()>::value,
"name must be defined directly in U");
Run Code Online (Sandbox Code Playgroud)
这意味着在编译时您必须有权访问您感兴趣的所有后代类型.
| 归档时间: |
|
| 查看次数: |
1045 次 |
| 最近记录: |