C ++将对象作为函数参数传递

时间:2015-12-17 14:45:00

标签: c++

此C ++代码是将对象作为参数传递但它无法正常工作的示例。有人可以指出问题吗?当我在main中声明对象时会出现问题。错误说:

  预计

错误;。

这是我的代码

#include<iostream>
#include<conio.h>
#include<iomanip>
using namespace std;

class time 
{
int hours;
int minutes;
public:
void gettime(int h, int m)
{
    hours = h;
    minutes = m;
}
void puttime(void)
{
    cout << hours << " hours and  ";
    cout << minutes << " minutes ";
}
void sum(time, time);
};

void time::sum(time t1, time t2)
{
minutes = t1.minutes + t2.minutes;
hours = minutes / 60;
minutes = minutes % 60;
hours = hours + t1.hours + t2.hours;
}

int main()
{
time t1, t2, t3;
t1.gettime(2, 45);
t2.gettime(3, 30);
t3.sum(t1, t2);
cout << "T1= "; t1.puttime();
cout << "T2= "; t2.puttime();
cout << "T3 = "; t3.puttime();
system("pause");
return 0;
}

2 个答案:

答案 0 :(得分:1)

改变这个:

time t1, t2, t3;

对此:

class time t1, t2, t3;

因为您的系统上的其他内容可能使用了time。如果这样可以解决问题,请将class time重命名为尚未使用的其他内容。

答案 1 :(得分:1)

标准库中有一个名为time的实体。只需将其重命名为it would work即可。不使用using namespace std;也无济于事,因为time在全局名称中也是按照C兼容性定义的