首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

类里面调用子类,如何调用啊

2012-06-08 
求高手指教类里面调用子类,怎么调用啊!!#include iostream#include string.husing namespace stdclas

求高手指教类里面调用子类,怎么调用啊!!
#include <iostream>
#include <string.h>

using namespace std;

class Data
{
  public:
  Data(int Year,int Month,int Day)
  {
  year=Year;
  month=Month;
  day=Day;
  }
  void display(int year,int month,int day)
  {
  cout<<"year="<<year<<endl;
  cout<<"month="<<month<<endl;
  cout<<"day="<<day<<endl;
  }
  private:
  int year;
  int month;
  int day;
};
class Music
{
  public:
  Music(const char *M_name="残雪",const char *P_name="许嵩",int M_hour=3):Data(data=(2012,2,23))
  {
  m_name=new char[strlen(M_name)+1];
  p_name=new char[strlen(P_name)+1];
  strcpy(m_name,M_name);
  strcpy(p_name,P_name);
  m_hour=M_hour;
  }
  inline void display();
  Music(const Music &a);
  ~Music();
  private:
  Data data;
  char *m_name;
  char *p_name;
  int m_hour;  
};
Music::Music(const Music &a)
{
  m_name=new char[strlen(a.m_name)+1];
  p_name=new char[strlen(a.p_name)+1];
  strcpy(m_name,a.m_name);
  strcpy(p_name,a.p_name);
  m_hour=a.m_hour;
  cout<<"拷贝构造函数!!"<<endl;
}
Music::~Music()
{
  delete m_name;
  cout<<"析构函数显示1!"<<endl;
  delete p_name;
  cout<<"析构函数显示2!"<<endl;
}
inline void Music::display()
{
  cout<<"m_name="<<m_name<<endl;
  cout<<"p_name="<<p_name<<endl;
  cout<<"m_hour="<<m_hour<<endl;
  Data(data)
}
int main()
{
  Music m1();
  m1.display();
  return 0;
}
在GCC里编译不通过 提示实参少,没搞明白到底哪出错了!!
同时求高手给讲解下具体的类怎么调用子类或有关书,文章。

[解决办法]

C/C++ code
#include <iostream>#include <string.h>using namespace std;class Data{public:    Data(int Year=2012,int Month=6,int Day=6)    {        year=Year;        month=Month;        day=Day;    }    void display(int year,int month,int day)    {        cout<<"year="<<year<<endl;        cout<<"month="<<month<<endl;        cout<<"day="<<day<<endl;    }private:    int year;    int month;    int day;};class Music{public:    Music(const char *M_name="残雪",const char *P_name="许嵩",int M_hour=3):data(2012,2,23)    {        m_name=new char[strlen(M_name)+1];        p_name=new char[strlen(P_name)+1];        strcpy(m_name,M_name);        strcpy(p_name,P_name);        m_hour=M_hour;    }    inline void display();    Music(const Music &a);    ~Music();private:    Data data;    char *m_name;    char *p_name;    int m_hour;   };Music::Music(const Music &a){    m_name=new char[strlen(a.m_name)+1];    p_name=new char[strlen(a.p_name)+1];    strcpy(m_name,a.m_name);    strcpy(p_name,a.p_name);    m_hour=a.m_hour;    cout<<"拷贝构造函数!!"<<endl;}Music::~Music(){    delete m_name;    cout<<"析构函数显示1!"<<endl;    delete p_name;    cout<<"析构函数显示2!"<<endl;}inline void Music::display(){    cout<<"m_name="<<m_name<<endl;    cout<<"p_name="<<p_name<<endl;    cout<<"m_hour="<<m_hour<<endl;    Data(data);}int main(){    Music m1;    m1.display();    return 0;} 

热点排行