C++中函数类型与定义的函数返回值类型必须相同么?
在用C++编译程序的时候看到书上面写了这么一句话“重载函数的返回类型可以相同,也可以不同”。比如下面的语句:intmyFunction(int,int);intmyFUn...
在用C++编译程序的时候看到书上面写了这么一句话“重载函数的返回类型可以相同,也可以不同”。比如下面的语句: int myFunction(int ,int); int myFUnction(long,long); int myFunction(long);他们的返回值类型都是相同的,如果把第三个改成了:double myFunction(long); 那这个还叫函数重载么?还有,假如先前已经声明了一个函数int myFUnction(long,long); 然后在定义函数时应该返回一个整型的值,可以返回其他类型的值么?比如说返回一个double类型的值。
展开
4个回答
展开全部
这是函数重载问题
函数重载,只要函数形参的反回类型或者个数不一样,就可以了。
如果反回类型不同,形参的反回类型和个数都一样的,就不是函数是重载
函数重载,只要函数形参的反回类型或者个数不一样,就可以了。
如果反回类型不同,形参的反回类型和个数都一样的,就不是函数是重载
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
重载和返回值类型无关,只和函数名和函数参数类型相关,即使你返回值类型不同,如果编译器能从函数参数和函数名来判断出该使用哪一个,这个重载即为合法。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
有两种情况不是重载:
class hello{
public:
int sad(int a,int c){return c;}
void sad(int a,int c){return;}
};
当你这样调用sad,
hello h;
h.sad(X,X);
编译器不知道你调用的是那一个,而编译失败。
2如下:
class hello{
public:
// int sad(int a){return a;}
int sad(int a,int c=5){return c;}
};
void main()
{
hello h;
int t=5, x=1;
cout<<h.sad(6);
}
这样情况编译器也不会知道你调用哪一个? 也失败。
class hello{
public:
int sad(int a,int c){return c;}
void sad(int a,int c){return;}
};
当你这样调用sad,
hello h;
h.sad(X,X);
编译器不知道你调用的是那一个,而编译失败。
2如下:
class hello{
public:
// int sad(int a){return a;}
int sad(int a,int c=5){return c;}
};
void main()
{
hello h;
int t=5, x=1;
cout<<h.sad(6);
}
这样情况编译器也不会知道你调用哪一个? 也失败。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询