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; };