6个回答
展开全部
在C++中,可以为参数指定默认值。在函数调用时没有指定与形参相对应的实参时, 就自动使用默认参数。
默认参数的语法与使用:
(1)在函数声明或定义时,直接对参数赋值。这就是默认参数;
(2)在函数调用时,省略部分或全部参数。这时可以用默认参数来代替。
注意:
(1)默认参数只可在函数声明中设定一次。只有在无函数声明时,才可以在函数定义中设定。
(2)默认参数定义的顺序为自右到左。即如果一个参数设定了缺省值时,其右边的参数都要有缺省值。
如:int mal(int a, int b=3, int c=6, int d=8) 正确,按从右到左顺序设定默认值。
int mal(int a=6, int b=3, int c=5, int d) 错误,未按照从右到左设定默认值。c设定缺省值了,而其右边的d没有缺省值。
(3)默认参数调用时,则遵循参数调用顺序,自左到右逐个调用。这一点要与第(2)分清楚,不要混淆。
如:void mal(int a, int b=3, int c=5); //默认参数
mal(3, 8, 9 ); //调用时有指定参数,则不使用默认参数
mal(3, 5); //调用时只指定两个参数,按从左到右顺序调用,相当于mal(3,5,5);
mal(5); //调用时只指定1个参数,按从左到右顺序调用,相当于mal(5,3,5);
mal( ); //错误,因为a没有默认值
mal(3, , 9) //错误,应按从左到右顺序逐个调用
再如: void mal(int a=8, int b=3, int c=5); //默认参数
mal( ); //正确,调用所有默认参数,相当于mal(8,3,5);
(4)默认值可以是全局变量、全局常量,甚至是一个函数。但不可以是局部变量。因为默认参数的调用是在编译时确定的,而局部变量位置与默认值在编译时无法确定。
默认参数的语法与使用:
(1)在函数声明或定义时,直接对参数赋值。这就是默认参数;
(2)在函数调用时,省略部分或全部参数。这时可以用默认参数来代替。
注意:
(1)默认参数只可在函数声明中设定一次。只有在无函数声明时,才可以在函数定义中设定。
(2)默认参数定义的顺序为自右到左。即如果一个参数设定了缺省值时,其右边的参数都要有缺省值。
如:int mal(int a, int b=3, int c=6, int d=8) 正确,按从右到左顺序设定默认值。
int mal(int a=6, int b=3, int c=5, int d) 错误,未按照从右到左设定默认值。c设定缺省值了,而其右边的d没有缺省值。
(3)默认参数调用时,则遵循参数调用顺序,自左到右逐个调用。这一点要与第(2)分清楚,不要混淆。
如:void mal(int a, int b=3, int c=5); //默认参数
mal(3, 8, 9 ); //调用时有指定参数,则不使用默认参数
mal(3, 5); //调用时只指定两个参数,按从左到右顺序调用,相当于mal(3,5,5);
mal(5); //调用时只指定1个参数,按从左到右顺序调用,相当于mal(5,3,5);
mal( ); //错误,因为a没有默认值
mal(3, , 9) //错误,应按从左到右顺序逐个调用
再如: void mal(int a=8, int b=3, int c=5); //默认参数
mal( ); //正确,调用所有默认参数,相当于mal(8,3,5);
(4)默认值可以是全局变量、全局常量,甚至是一个函数。但不可以是局部变量。因为默认参数的调用是在编译时确定的,而局部变量位置与默认值在编译时无法确定。
2011-07-06
展开全部
#include<iostream>
using namespace std;
struct Output
{
virtual void display()=0;
};
class Time:public Output
{
public:
Time(int,int,int);
void display();
private:
int hour;
int minute;
int second;
};
class Date:public Output
{
public:
Date(int,int,int);
void display();
private:
int month;
int day;
int year;
};
Time::Time(int h,int m,int s)
{
hour=h;
minute=m;
second=s;
}
Date::Date(int m,int d,int y)
{
month=m;
day=d;
year=y;
}
void Date::display()
{
cout<<month<<"/"<<day<<"/"<<year<<endl;
}
void Time::display()
{cout<<hour<<":"<<minute<<":"<<second<<endl;
}
void Display(Output& ot)
{
ot.display();
}
int main()
{
Time t1(10,11,56);
Date d1(12,15,2008);
Display(t1);
Display(d1);
return 0;
}
另外,团IDC网上有许多产品团购,便宜有口碑
using namespace std;
struct Output
{
virtual void display()=0;
};
class Time:public Output
{
public:
Time(int,int,int);
void display();
private:
int hour;
int minute;
int second;
};
class Date:public Output
{
public:
Date(int,int,int);
void display();
private:
int month;
int day;
int year;
};
Time::Time(int h,int m,int s)
{
hour=h;
minute=m;
second=s;
}
Date::Date(int m,int d,int y)
{
month=m;
day=d;
year=y;
}
void Date::display()
{
cout<<month<<"/"<<day<<"/"<<year<<endl;
}
void Time::display()
{cout<<hour<<":"<<minute<<":"<<second<<endl;
}
void Display(Output& ot)
{
ot.display();
}
int main()
{
Time t1(10,11,56);
Date d1(12,15,2008);
Display(t1);
Display(d1);
return 0;
}
另外,团IDC网上有许多产品团购,便宜有口碑
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
默认参数就像拟定一个枚举数组,在没有给数组成圆赋值的情况下,是从0 1 2 3 ……这样开始的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<iostream>
using namespace std;
struct Output
{
virtual void display()=0;
};
class Time:public Output
{
public:
Time(int,int,int);
void display();
private:
int hour;
int minute;
int second;
};
class Date:public Output
{
public:
Date(int,int,int);
void display();
private:
int month;
int day;
int year;
};
Time::Time(int h,int m,int s)
{
hour=h;
minute=m;
second=s;
}
Date::Date(int m,int d,int y)
{
month=m;
day=d;
year=y;
}
void Date::display()
{
cout<<month<<"/"<<day<<"/"<<year<<endl;
}
void Time::display()
{cout<<hour<<":"<<minute<<":"<<second<<endl;
}
void Display(Output& ot)
{
ot.display();
}
int main()
{
Time t1(10,11,56);
Date d1(12,15,2008);
Display(t1);
Display(d1);
return 0;
}
using namespace std;
struct Output
{
virtual void display()=0;
};
class Time:public Output
{
public:
Time(int,int,int);
void display();
private:
int hour;
int minute;
int second;
};
class Date:public Output
{
public:
Date(int,int,int);
void display();
private:
int month;
int day;
int year;
};
Time::Time(int h,int m,int s)
{
hour=h;
minute=m;
second=s;
}
Date::Date(int m,int d,int y)
{
month=m;
day=d;
year=y;
}
void Date::display()
{
cout<<month<<"/"<<day<<"/"<<year<<endl;
}
void Time::display()
{cout<<hour<<":"<<minute<<":"<<second<<endl;
}
void Display(Output& ot)
{
ot.display();
}
int main()
{
Time t1(10,11,56);
Date d1(12,15,2008);
Display(t1);
Display(d1);
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
其实就是少写一些代码,没有啥特别用处
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询