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

有关类类型的问题,很是奇怪啊

张海锋 发布于 2013-03-05 20:40, 286 次点击
#include<iostream.h>
class clock{
public:
clock(int h,int m,int s)
{
H=h;
M=m;
S=s;
cout<<"constructor"<<H<<":"<<M<<":"<<S<<endl;
}
~clock()
{
cout<<"destructor"<<H<<":"<<M<<":"<<S<<endl;
}
clock(clock &p)
{
H=p.H;
M=p.M;
H=p.S;
}
void showtime()
{
cout<<H<<":"<<M<<":"<<S<<endl;
}
};
clock fun(clock c)
{
return c;
}
int main()
{
clock c1(8,0,0);
clock c2(9,0,0);
clock c3(c2);
fun(c2);
clock c4;这里的定义的对象c4会报错额,但是如果写成clock c4=c2编译器又不会报错啊
c4=c2;
return 0;
}
1 回复
#2
yuccn2013-03-05 21:32
因为你有clock(int h,int m,int s) 后,就不会给你提供默认的构造函数了
而clock c4; 需要的就是不带参数的构造函数,如果你要这样定义,那么就的在提供一个不带参数的构造函数了

clock()
 {
 H=0;
 M=0;
 S=0;
 cout<<"constructor"<<H<<":"<<M<<":"<<S<<endl;
 }

还有,

1 没有在你的类中找到H  M 和S成员?是否写漏了
2
clock(clock &p)
 {
 H=p.H;
 M=p.M;
 H=p.S; //  这个你是否想写S = p.S;?
 }


1