函数的形参

来源:百度知道 编辑:UC知道 时间:2024/05/11 04:33:08
#include<iostream.h>

class time{
public:
int hour;
int minute;
int sec;
};
int main()
{
void settime(time &,int hour=0,int minute=0,int sec=0);
void showtime(time &);
time t1,t2;
settime(t1,12,23,34);
showtime(t1);
settime(t2);
showtime(t2);
return 0;
}

void settime(time &t,int hour,int minute,int sec)
{
t.hour=hour;
t.minute=minute;
t.sec=sec;
}

void showtime(time &t)
{
cout<<t.hour<<":"<<t.minute<<":"<<t.sec<<endl;
}

在函数声明语句的时候可以将形参初始化?
void settime(time &,int hour=0,int minute=0,int sec=0);
而在函数定义的时候就不行?

这是c++的规定,函数的默认参数放在说明处
比如 在 file1.cpp 中
void settime(time &,int hour=0,int minute=0,int sec=0);

比如 在 file2.cpp 中
extern void settime(time &,int hour=0,int minute=1,int sec=1);

在 file1.cpp中和file2.cpp 中分别
调用 settime 时 默认参数就是不同的

你说的是类的成员函数把
成员函数在类体内定义
在类外实现,也就是初始化