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

关于类的继承的一些程序,请问错在哪了,求解

飘羽 发布于 2011-04-12 00:55, 413 次点击
// Note:Your choice is C++ IDE
#include <iostream>
using namespace std;
class publication{
    private:
     int price,year,month,day;
    public:
     char title[10];
     char name[10];
     int a,int b,int c;
     publication();
     ~publication();
     void inputdata()
     {
         cout<<"请输入出版日期a,b,c的值:"<<endl;
         cin>>a>>b>>c;
         cout<<"请输入出版物的标题:"<<endl;
         for(int i=0;i<10;i++)
         {
             cin>>title[i];
         }
         cout<<"请输入出版物的名称:"<<endl;
         for(i=0;i<10;i++)
         {
             cin>>name[i];
         }
         cout<<"请输入单价:"<<endl;
         cin>>price;
     }
     int getprice(){return price;}
     void date()
     {
         year=a;
         month=b;
         day=c;
         cout<<year<<"."<<month<<"."<<day;
     }
     void display()
     {
         cout<<"出版物的标题为:"<<endl;
         cout<<title<<endl;
         cout<<"出版物的名称为:"<<endl;
         cout<<name<<endl;
         cout<<"出版物的单价为:"<<endl;
         cout<<price<<endl;
         cout<<"出版日期为:"<<endl;
         date();
     }
};

class book:public publication{
    private:
      int page;
    public:
      int getpage(){return page;}
      book();
      ~book();
      void inputdata()
      {
          publication::inputdata();
          cout<<"请输入需要保存的图书页数:"<<endl;
          cin>>page;
      }
      void display()
      {
          publication::display();
          cout<<"保存的图书页数为:"<<endl;
          cout<<page;
      }
};

class tape:public publication{
    private:
      int hour,minute,second;
    public:
    int l,m,n;
    void playtime()
    {
        hour=l;
        minute=m;
        second=n;
        cout<<hour<<"."<<minute<<"."<<second;
    }
    tape();
    ~tape();
    void inputdata()
    {
          publication::inputdata();
          cout<<"请输入要保存的播放时间:"<<endl;
          cin>>l>>m>>n;
    }
    void display()
    {
        publication::display();
        cout<<"保存的播放时间为:"<<endl;
        playtime();
    }
};
   
void main()
{
    publication    p;
    book b;
    tape t;
    p.inputdata();
    p.display();
    b.inputdata();
    b.display();
    t.inputdata();
    t.display();
}
      

     
4 回复
#2
rjsp2011-04-12 09:41
"请问错在哪了" --- 你自己都不知道哪儿有错,别人怎么知道?

你应该这么问:
在 int a,int b,int c; 处编译报错:type 'int' unexpected ……
在 for(i=0;i<10;i++) 处编译报错:'i' : undeclared identifier ……
……


#3
寒风中的细雨2011-04-12 13:38
构造和析构  只有声明没有定义
#4
潜修僧2011-04-14 12:43
有三处错误,第一:publication();改为publication(){};
             第二: int a,int b,int c;要么全为分号;要么去掉后两个int
            第三: for(i=0;i<10;i++) 应该改为 for(int i=0;i<10;i++)



#5
pangding2011-04-14 17:11
如果有编译的错误,楼主应该先尝试自己改改。对初学者提高水平还是很有帮助的。
像这种程序,应该多多少少是抄的某些书上的例题。用心想想,应该还是能想通的。
1