主题:空构造函数问题
#include<iostream.h>
#include<string.h>
class base{
char name[20];
int number;
public: base( ) { }
base(char a[],int b)
{ strcpy(name ,a);
number=b;
}
void display ()
{
cout<<name<<"["<<number<<"]"<<endl;
}
};
class book:public base{
char bn[20];
public:
book(){}
book(char a[],int b,char c[]):base(a,b)
{
strcpy(bn,c);
}
void bookshow()
{ display();
cout<<"作者属性:"<<bn<<endl;
}
};
class reader:public base {
int total;
book rent[5];
public: reader (char a[],int b):base(a,b)
{
total=0;
}
void amount(book &t)
{ rent[total]=t;
total++;
}
void show()
{ cout<<"读者:";display() ;
cout<<"所借图书:"<<endl;
for( int i=0;i<total;i++)
{ cout<<i+1;
rent[i].display();
cout<<endl;
}
}
};
int main()
{ book b1("离散数学",1001,"屈婉玲"),b2("C语言",1002,"谭浩强");
reader a ("张华",101);
a.amount(b1);
a.amount(b2);
a.show();
return 0;
}
在base类和book类中为什么要在有参构造函数前要定义一个空构造函数,这里空构造函数为什么必不可少?有什么用途?它是在什么情况下需要使用的。
#include<string.h>
class base{
char name[20];
int number;
public: base( ) { }
base(char a[],int b)
{ strcpy(name ,a);
number=b;
}
void display ()
{
cout<<name<<"["<<number<<"]"<<endl;
}
};
class book:public base{
char bn[20];
public:
book(){}
book(char a[],int b,char c[]):base(a,b)
{
strcpy(bn,c);
}
void bookshow()
{ display();
cout<<"作者属性:"<<bn<<endl;
}
};
class reader:public base {
int total;
book rent[5];
public: reader (char a[],int b):base(a,b)
{
total=0;
}
void amount(book &t)
{ rent[total]=t;
total++;
}
void show()
{ cout<<"读者:";display() ;
cout<<"所借图书:"<<endl;
for( int i=0;i<total;i++)
{ cout<<i+1;
rent[i].display();
cout<<endl;
}
}
};
int main()
{ book b1("离散数学",1001,"屈婉玲"),b2("C语言",1002,"谭浩强");
reader a ("张华",101);
a.amount(b1);
a.amount(b2);
a.show();
return 0;
}
在base类和book类中为什么要在有参构造函数前要定义一个空构造函数,这里空构造函数为什么必不可少?有什么用途?它是在什么情况下需要使用的。