cod*_*nix 7 c++ constructor overload-resolution
如果我有以下内容:
class T
{
public:
T(){}
};
void T()
{
}
int main()
{
T(); // this calls the function, how can I call the constructor T()?
}
Run Code Online (Sandbox Code Playgroud)
我没有任何问题,因为我可以重命名它,但只是好奇我如何强制它调用构造函数,而且我问自己为什么函数调用似乎比构造函数具有更高的优先级.此外,为什么没有关于重复名称的警告消息.
除了 jaunchopanza 所说的之外,您还可以限定该调用:
T::T();
Run Code Online (Sandbox Code Playgroud)
使用此版本,您可以创建临时文件:
class T
{
public:
T(){}
};
void foo(T) {}
void T()
{
}
int main(){
foo(T::T());
}
Run Code Online (Sandbox Code Playgroud)