定义只返回y参数,我只是学习函数原型
#include <iostream>
using namespace std;
int doDateofBirth(int m , int d , int y);
int main(){
cout << "My DoB is, " << doDateofBirth(4,14,1998) << endl;
}
int doDateofBirth(int m,int d,int y){
return m,d,y;
}
答案 0 :(得分:5)
您无法在C ++中返回多个对象。
return m,d,y;
使用逗号运算符来计算其左侧表达式,抛出其值,然后返回右侧表达式的值。在这种情况下,它与您编写的
相同return y;
您可以创建一个类来表示日期,然后返回:
struct Date {
//maybe add protection, constructors, methods, etc
int month;
int day;
int year;
};
Date doDateOfBirth (const Date& something);
答案 1 :(得分:0)
要尽可能多地返回,请使用:boost::tuple
表示C ++ 11及更新版
答案 2 :(得分:0)
在C ++中,如果要返回多个变量,请考虑以下选项之一:
根据您的示例,您可以使用引用变量选项:
原型
void doDateofBirth(int &m , int &d , &int y);
实现:
void doDateofBirth(int &m,int &d,int &y){
// do your coding here
}
这是你调用函数的方法: int月,日,年; doDateOfBirth(月,日,年);
答案 3 :(得分:0)
通常当您觉得需要返回多个值时,这些值实际上代表了一个更大的整体,您应该用包含这些值的不同数据类型来表示。 E.g:
struct DateOfBirth
{
const int month;
const int day;
const int year;
};
DateOfBirth doDateofBirth(int m, int d, int y){
return { m, d, y };
}
doDateofBirth
的行为与构造函数完全相同,所以我们将它作为构造函数:
struct DateOfBirth
{
DateOfBirth(int m, int d, int y) : month(m), day(d), year(y) { } // constructor
const int month;
const int day;
const int year;
};
然后可以这样使用:
int main()
{
DateOfBirth mybd(666, 42, 69);
printf("%d/%d/%d\n", mybd.year, mybd.month, mybd.day);
}