};
classderived:
publicbase1,publicbase2
{protected:
intd;
public:
derived(intsa,intsb,intsc,intsd):
base(sa),base1(sa,sb),base2(sa,sc)
{d=sd;cout<<"Constructingderived"<}
};
main()
{derivedobj(2,4,6,8);
return0;
}
运行结果为:
10.写出下述程序的运行结果(P183)
#include
#include
classPerson
{protected:
char*m_name;
intm_age;
public:
Person(char*name,intage)
{m_name=newchar[strlen(name)+1];
strcpy(m_name,name);
m_age=age;
cout<<"PersonName="<cout<<"Personm_age="<}
~Person()
{delete[]m_name;}
};
intmain()
{Personobj("Angel",20);
return0;
}
运行结果为:
PersonName=Angel
Personm_age=20
又:
#include
#include
classPerson
{protected:
char*m_name;
intm_age;
public:
Person(char*name,intage)
{m_name=newchar[strlen(name)+1];
strcpy(m_name,name);
m_age=age;
cout<<"PersonName="<cout<<"Personm_age="<}
~Person()
{delete[]m_name;}
};
classStudent:
publicvirtualPerson
{protected:
longintm_classnu;
public:
Student(char*name,intage,longintclassnu):
Person(name,age)
{m_classnu=classnu;
cout<<"StudentName="<cout<<"Studentm_age="<cout<<"Studentclassnu="<}
~Student(){}
};
intmain()
{Studentobj("Angel",20,20000103);
return0;
}
运行结果为:
PersonName=Angel
Personm_age=20
StudentName=Angel
Studentm_age=20
Studentclassnu=20000103
11.写出下述程序的运行结果(P183)
#include
#include
classPerson
{protected:
char*m_name;
intm_age;
public:
Person(char*name,intage)
{m_name=newchar[strlen(name)+1];
strcpy(m_name,name);
m_age=age;
cout<<"PersonName="<}
~Person()
{deletem_name;}
};
classStudent:
publicvirtualPerson
{protected:
longintm_classnu;
public:
Student(char*name,intage,longintclassnu):
Person(name,age)
{m_classnu=classnu;
cout<<"StudentName="<}
~Student(){}
};
classEmployee:
publicvirtualPerson
{protected:
floatm_wage;
public:
Employee(char*name,intage,floatwage):
Person(name,age)
{m_wage=wage;
cout<<"EmployeeName="<}
~Employee(){}
};
classSideLine:
publicStudent,publicEmployee
{public:
SideLine(char*name,intage,longintclassnu,Floatwage):
Person(name,age)
Student(name,age,classnu),Employee(name,age,wage)
{cout<<"SideLineName="<~SideLine(){}
};
intmain()
{SideLineobj("Angel",20,20000103,3000);
return0;
}
此程序编译有错!
Compiling...
ccc.cpp
e:
\my-1\jiaoxue\c++\c++\c++讲义\lt\ccc\ccc.cpp(39):
errorC2629:
unexpected'classSideLine('
e:
\my-1\jiaoxue\c++\c++\c++讲义\lt\ccc\ccc.cpp(39):
errorC2334:
unexpectedtoken(s)preceding':
';skippingapparentfunctionbody
e:
\my-1\jiaoxue\c++\c++\c++讲义\lt\ccc\ccc.cpp(45):
errorC2660:
'SideLine:
:
SideLine':
functiondoesnottake4parameters
Errorexecutingcl.exe.
ccc.obj-3error(s),0warning(s)
修改如下:
#include
#include
classPerson
{protected:
char*m_name;
intm_age;
public:
Person(char*name,intage)
{m_name=newchar[strlen(name)+1];
strcpy(m_name,name);
m_age=age;
cout<<"PersonName="<}
~Person()
{delete[]m_name;}
};
classStudent:
publicvirtualPerson
{protected:
longintm_classnu;
public:
Student(char*name,intage,longintclassnu):
Person(name,age)
{m_classnu=classnu;
cout<<"StudentName="<}
~Student(){}
};
classEmployee:
publicvirtualPerson
{protected:
floatm_wage;
public:
Employee(char*name,intage,floatwage):
Person(name,age)
{m_wage=wage;
cout<<"EmployeeName="<}
~Employee(){}
};
classSideLine:
publicStudent,publicEmployee
{public:
SideLine(char*name,intage,longintclassnu,floatwage):
\
Person(name,age),Student(name,age,classnu),Employee(name,age,wage)
{cout<<"SideLineName="<~SideLine(){}
};
intmain()
{SideLineobj("Angel",20,20000103,3000);
return0;
}
运行结果为:
PersonName=Angel
StudentName=Angel
EmployeeName=Angel
SideLineName=Angel