我是Java出身,所以当需要调用这样的函数时:
struct A {
int a;
A(int a) : a(a){ }
};
A foo(A a){
return A(a);
}
我倾向于写类似的东西
A a = foo(A(10));
而且它工作得很好。但是我了解到它也可以通过这种方式完成::
A a = foo(static_cast<A>(10));
即它强制执行隐式转换。那么,根据经验,当我们需要利用隐式转换时,我们是否应该始终使用 static_cast
风格?或者在某些情况下可能需要函数/C 风格的转换?
最佳答案
在 C++ 中,您永远不需要 C 风格的转换。至于你的例子,最常见的写法是这样的:
A a = foo(A(10));
关于c++ - 了解 C++ 中的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33622574/