求高手指教类里面调用子类,怎么调用啊!!
#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里编译不通过 提示实参少,没搞明白到底哪出错了!!
同时求高手给讲解下具体的类怎么调用子类或有关书,文章。
[解决办法]
#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;}