gpt4 book ai didi

c++ - 如果有人在 C++ 中调用方法,则强制错误(编译时)

转载 作者:行者123 更新时间:2023-11-28 07:37:23 25 4
gpt4 key购买 nike

免责声明:CCNode 类是 cocos2d-x 框架的一部分,这不是我想要的。

基类 CCNode 有一个 init 方法:

virtual bool init();

我的派生类需要两个参数,所以我声明了一个新的 init 方法:

virtual bool init(int, int);

我想强制使用新的 init(int a, int) 而不是原来的。我知道我可以选择使用默认参数调用新的,但在上下文中感觉不对。

我正在寻找一种方法来告诉用户“改为调用 init(int, int)”,如果有人试图调用该方法。我宁愿在编译时而不是在运行时得到它。

我试过 C++11 的 static_assert(false, "message"),但没有调用它就失败了...

最佳答案

如果您真的想阻止某人调用标准节点方法,我认为您应该私下继承它。然而,更巧妙的做法是从您的创建方法中调用新的 init,这是无论如何在构造您的对象时唯一应该由外部代码调用的方法。

关于c++ - 如果有人在 C++ 中调用方法,则强制错误(编译时),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16509743/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com