Dil*_*eep 5 c c++ java programming-languages
好奇的是,对于java,c,c ++等语言中的方法有多个返回值有任何技术限制,或者仅限于规范?在汇编语言中我理解callee可以弹出一个值来注册.
Bil*_*eal 19
struct引用(在Java/C#中)或指针.允许多个返回值会增加复杂性,而且它只是简单地解决了.它没有理由在那里.(实际上,在C++中你可以返回一个tuple(来自TR1,C++ 11或boost),它实际上是多个返回值)
它的设计,因为没有必要在return语句中允许多个值.您始终可以使用所有需要的成员定义结构,并创建结构的实例并将其返回.简单!
例,
struct Person
{
std::string Name;
int Age;
std::string Qualification;
//...
};
Person GetInfo()
{
Person person;
//fill person's members ...
return person;
}
Run Code Online (Sandbox Code Playgroud)
您可以使用std::pair,std::vector,std::map,std::list 等等.在C++ 0x中,您也可以使用std::tuple它.
如果精灵只给你一个愿望,你可以希望有任何数量的愿望.它只与方法中的一个返回值相同.您可以使用返回值作为指向充满属性的对象所在的地址的指针,然后查询这些属性(属性)......这种方式确实没有限制.:-)
有趣的编码和许多快乐的回报:-)