答案-c++面向对象程序设计课后习题答案(谭浩强版) 下载本文

cout<<\ cout<<\ }

class Student1: protected Student //声明一个保护派生类 {public:

void get_value_1(); void display1( ); private:

int age; char addr[30]; };

void Student1::get_value_1() {get_value();

cin>>age>>addr; }

void Student1::display1( )

{cout<<\ cout<<\ cout<<\ cout<<\ cout<<\ }

int main( )

{Student1 stud1; stud1.get_value_1(); stud1.display1( ); return 0; }

4: 解法一

#include using namespace std; class Student//声明基类

{public: void get_value(); void display( );

protected : int num;

char name[10]; char sex; };

//引用基类的保护成员 //引用基类的保护成员 //引用基类的保护成员 //引用派生类的私有成员 //引用派生类的私有成员 //stud1是派生类student1类的对象 //调用派生类对象stud1的公用成员函数 //调用派生类对象stud1的公用成员函数 //基类公用成员 //基类保护成员 void Student::get_value() {cin>>num>>name>>sex;}

void Student::display( )

{cout<<\ cout<<\ cout<<\ }

class Student1: public Student {public:

void get_value_1(); void display1( ); private:

int age; char addr[30]; };

void Student1::get_value_1() {get_value();

cin>>age>>addr; }

void Student1::display1( )

{cout<<\ cout<<\ cout<<\ cout<<\ cout<<\ }

int main( )

{Student1 stud1; stud1.get_value_1(); get_value_1

stud1.display1( ); return 0; }

解法二

#include using namespace std;

class Student {public: void get_value(); void display( );

//声明一个公用派生类 //引用基类的保护成员,合法

//引用基类的保护成员,合法 //引用基类的保护成员,合法 //引用派生类的私有成员,合法 //引用派生类的私有成员,合法 //stud1是派生类student1类的对象

//调用派生类对象stud1的公用成员函数 //调用派生类对象stud1的公用成员函数display1 //声明基类

//基类公用成员 protected : //基类保护成员 int num;

char name[10]; char sex; };

void Student::get_value() {cin>>num>>name>>sex;}

void Student::display( )

{cout<<\ cout<<\ cout<<\ }

class Student1: protected Student //声明一个公用派生类 {public:

void get_value_1(); void display1( ); private:

int age; char addr[30]; };

void Student1::get_value_1() {cin>>age>>addr;}

void Student1::display1( ) {cout<<\

cout<<\ }

int main( )

{Student1 stud1; //stud1是派生类student1类的对象 stud1.get_value(); stud1.get_value_1(); stud1.display( );

stud1.display1(); //合法。display1是派生类中的公用成员函数 return 0; } 5:

class A //A为基类 {public: void f1( );

int i; protected: void f2(); int j; private: int k; };

class B: public A //B为A的公用派生类 {public: void f3( ); protected: int m; private: int n; };

class C: public B {public: void f4(); private: int p; };

int main()

{A a1; B b1; C//c1是派生类C的对象 return 0; }

6:

#include using namespace std; class A {public: void f1( ); protected: void f2(); private: int i; };

class B: public A {public:

//C为B的公用派生类 //a1是基类A的对象 //b1是派生类B的对象