注册 登录
编程论坛 C++教室

关于c++缺省形参值得作用域,用全局缺省形参,无显示 求指教

Eliza 发布于 2013-07-12 17:25, 845 次点击
#include "stdafx.h"
#include <iostream>
using namespace std;
int add(int x=3,int y=5)
{return x+y;}
void main()
{
    int add(int x=2,int y=5);
    int ad;
    ad=add();
cout<<ad<<endl;getchar();
}//使用局部缺省形参值

void fun(void)
{
    int s;
    s=add();
    cout<<s<<endl;getchar();
}//使用全局缺省形参值
9 回复
#2
peach54602013-07-12 17:33
int add(int x=2,int y=5);
这TM也行?
#3
Eliza2013-07-12 17:40
这是在不同作用域,在使用全局缺省形参值时,可运行结果没有8,只有7,和概念讲的不一样,请大侠指教

[ 本帖最后由 Eliza 于 2013-7-12 17:58 编辑 ]
#4
Eliza2013-07-12 18:01
回复 2楼 peach5460
这是在不同作用域,在使用全局缺省形参值时,可运行结果没有8,只有7,和概念讲的不一样,请大侠指教
#5
love云彩2013-07-12 19:24
不多解释,看截图,只是形参的默认值不一致而已,然后稍微加了一行代码以及修改了全局函数定义的位置
只有本站会员才能查看附件,请 登录

#6
Eliza2013-07-12 20:52
只有本站会员才能查看附件,请 登录
#7
Eliza2013-07-12 20:53
回复 5楼 love云彩
你用的是什么环境?
#8
love云彩2013-07-12 21:10
vs2012,截图中的输入一个1是由于代码中有getchar()
#9
love云彩2013-07-12 21:26
只有本站会员才能查看附件,请 登录

重新审阅了楼主的代码,只是作用域的不同吧,在主函数里面的声明是使用2,而在全局函数定义的时候是3,说明作用域的不同,可以有不同的值
#10
Eliza2013-07-12 21:57
回复 9楼 love云彩
哦哦,明白了,谢谢
1