读书人

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

发布时间: 2012-06-08 12:55:24 作者: rapoo

求高手指教类里面调用子类,怎么调用啊!!
#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;} 

读书人网 >C++

热点推荐