gpt4 book ai didi

c++ - 类方法和全局函数中的别名

转载 作者:行者123 更新时间:2023-11-30 05:12:33 24 4
gpt4 key购买 nike

我试图将 winsock2 封装在一个类中,并且我有一个名为 bind 的成员函数,它显然会碰到 winsock2.h 的 bind 函数。

class foo {
public:
void bind();
void some_function() {
bind(_sockfd, p->ai_addr, p->ai_addrlen); //error... compiler actually calls foo::bind() instead of the global bind function.
}

private:
...
}

有解决办法吗? (除了重命名 foo::bind())。

最佳答案

如果您需要的功能不是宏,那么您可以完全限定它。

class base {
int bind(...);
}

class derived : public base {
int bind(...);
int someFunction();
}


int derived::someFunction()
{
base::bind(); // call base class's implementation.
bind(); // call derived::bind();
::bind(); // call global function.
}

关于c++ - 类方法和全局函数中的别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44471738/

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