使用构造函数返回

Rhy*_*den 9 c++ constructor return-value

只是一个简单的问题.

我写了一些返回自定义类Command的代码,我写的代码似乎工作正常.我想知道是否有任何理由我不应该这样做.它是这样的:

Command Behavior::getCommand ()
{
  char input = 'x';

  return Command (input, -1, -1);
}
Run Code Online (Sandbox Code Playgroud)

无论如何,我读到构造函数不具有返回值,但这在g ++中有效.

谢谢你的建议,

里斯

Jam*_*lis 7

构造函数本身没有返回值.这样做是构造一个临时Command对象并将构造的objet返回给调用者.它实际上和你说的一样:

Command temp(input, -1, -1);
return temp;
Run Code Online (Sandbox Code Playgroud)

它适用于任何C++编译器.