在c ++中,你有像c#中的"out参数"吗?

Cod*_*ero 3 c++

在c ++中,你有像c#中的"out参数"吗?

在c#中,方法签名将是:

bool TryGetValue(int key, out OrderType order)
Run Code Online (Sandbox Code Playgroud)

这个想法是在传递之前可能没有分配变量,但必须在退出方法之前分配.

MSDN out params链接:http://msdn.microsoft.com/en-us/library/aa645764( v = vs.71).aspx

Jar*_*Par 5

out在C++中没有像C#参数那样严格的内容.您可以使用指针和引用来传回值,但编译器无法保证它们已在函数内分配.他们离C#更近ref了out

// Compiles just fine in C++
bool TryGetValue(int key, OrderType& order) {
  return false;
}
Run Code Online (Sandbox Code Playgroud)


Mat*_*nen 5

不,outC++ 中没有强制您在退出函数之前分配给它的参数.指针和引用更像ref是C#中的参数.