CTeacher::~CTeacher() { delete[]name; }
void CTeacher::SetStuAge(int a) { stu.age=a; }
void main() { CStudent stu1(\张三\ CStudent str2(\李四\}
问题一:以上程序有两个错误,指出并改正。
答:第一处错误是Cstudent age为私有,Cteacher无法访问。
第二处错误是Cteacher中Cstudent未初始化。
改正:①public:int age②Cteacher::Cteacher(char*tn,int ta)::age(ta),stu(tn,ta) 3. 理解下面的程序并运行,然后回答后面的问题。 #include
private: const int year; const int month; const int day; public: Date(int y,int m,int d); void showdate(); };
Date::Date(int y,int m,int d) { year=y; month=m; day=d; }
void Date::showdate() {
 cout< void main() {  const Date obj(2007,10,30);  obj.showdate(); }  问题一:以上程序有两个错误,试指出来,并改正之?  答:第一处错误是:构造函数应该用成员初始化列表对常数据成员初始化;第二处错误是:没有用常成员函数访问常对象数据成员。改正后的程序为: #include private:  const int year;  const int month;  const int day; public:  Date(int y,int m,int d);  void showdate()const ; };  Date::Date(int y,int m,int d):year(y),month(m),day(d) {         }  void Date::showdate()const  {  cout< void main() {        Date obj(2007,10,30);  obj.showdate(); }  实验五 派生与继承—单基派生  5.1 实验目的  1. 理解继承的概念;  2.理解共有派生、私有派生和保护派生;  3. 理解单基派生类中构造函数和析构函数的执行顺序。 5.2 实验内容 5.2.1 程序阅读  1. 理解下面的程序并运行,然后回答后面的问题。   #include public:  CBase(int a)   :a(a)  {  } protected:  void print()  {   cout<<\ } private:  int a; };  class CDerive:public CBase {  public:  void print()  {   CBase::print();   cout<<\ } private:  int b; }  void main() {  CDerive d;   d.print();  CBase b;  b.print(); }  问题一:以上程序有两个错误,试指出来,并改正之。  答:类CBase中的成员数据应该为公有访问属性,第二个错误是构造函数有问题。改正后的程序有两种: ①  #include   Void print()  {   cout<<\ } public:  int a; };  class CDerive:public CBase {  public:  CDerive(int a,int b):CBase(a),b(b)  {  }  void print()  {   CBase::print();   cout<<\}  private:  int b; };