作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
Here是对应的问题,我想知道的是,是否可以将全局函数带入成员函数的重载决议中?
我尝试了两种方法,但都不起作用:
void foo(double val) { cout << "double\n";}
class obj {
public:
using ::foo; // (1) compile error: using-declaration for non-member at class scope
void callFoo() {
using ::foo; // (2)will cause the global version always be called
foo(6.4);
foo(0);
}
private:
void foo(int val) {cout << "class member foo\n"; }
};
最佳答案
我怀疑您能否让编译器根据类型调用一个或另一个。您当然可以使用本地包装函数,如下所示:
void callFoo() {
foo(6.4);
foo(0);
}
private:
void foo(double val) { ::foo(val); }
包装函数应该很好地内联为空,因此在优化编译时没有实际开销。
或者不要将成员和全局函数命名为相同的名称,这会让生活变得更加轻松!
关于c++ - 是否可以将全局函数带入成员函数的重载决议中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25863485/
tl;dr:我编写的函数创建了多个子进程,这些子进程在提交消息中的数据时解决 promise 。尽管该函数将所有这些 Promise 包装在 Promise.All 中,但该函数将突然返回,并且 Pr
我目前正在阅读 Jon Skeet 的 C# in depth 第 2 版,我想到了以下问题: 编译器如何能够在 list.Sort(Comparison) 之间进行选择?和 list.Sort(My
我是一名优秀的程序员,十分优秀!