将第6题的程序分别作以下修改,分析所修改部分的含义以及编译和运行的情况。

2016-06-25 21:52:24  分类: c++程序设计第三版谭浩强课后答案  参与:

将第6题的程序分别作以下修改,分析所修改部分的含义以及编译和运行的情况。
(1) 将main函数第2行改为const Student stud(101,78.5);
(2) 在(1)的基础上修改程序,使之能正常运行,用change函数修改数据成员num和score的值。
(3) 将main函数改为
int main( )
{Student stud(101,78.5);
Student *p=&stud;
p->display( );
p->change(101,80.5);
p->display( );
return 0;
其他部分仍同第6题的程序。
(4) 在(3)的基础上将main函数第3行改为const Student *p=&stud;
(5) 再把main函数第3行改为Student *const p=&stud;

*********************************************************************
(1)答案:
#include <iostream>
using namespace std;
class Student
 {public:
   Student(int n,float s):num(n),score(s){}
   void change(int n,float s) {num=n;score=s;}
   void display() {cout<<num<<" "<<score<<endl;}
     //可改为:void display() const {cout<<num<<" "<<score<<endl;}
  private:
   int num;
   float score;
 };

int main()
{const Student stud(101,78.5);
 stud.display();
 //stud.change(101,80.5);
 stud.display();
 return 0;
}

************************************************************
(2)答案
#include <iostream>
using namespace std;
class Student
 {public:
   Student(int n,float s):num(n),score(s){}
   void change(int n,float s) const  {num=n;score=s;}
   void display() const {cout<<num<<" "<<score<<endl;}
  private:
   mutable int num;
   mutable float score;
 };

int main()
{const Student stud(101,78.5);
 stud.display();
 stud.change(101,80.5);
 stud.display();
 return 0;
}

*******************************************
 (3)答案:

#include <iostream>
using namespace std;
class Student
 {public:
   Student(int n,float s):num(n),score(s){}
   void change(int n,float s) {num=n;score=s;}
   void display() {cout<<num<<" "<<score<<endl;}
  private:
   int num;
   float score;
 };

int main()
{Student stud(101,78.5);
 Student *p=&stud;
 p->display();
 p->change(101,80.5);
 p->display();
 return 0;
}
 

*******************************************************
(4)答案:

   #include <iostream>
using namespace std;
class Student
 {public:
   Student(int n,float s):num(n),score(s){}
   void change(int n,float s) {num=n;score=s;}
   void display() const{cout<<num<<" "<<score<<endl;}
  private:
   int num;
   float score;
 };

int main()
{Student stud(101,78.5);
 const Student *p=&stud;
 p->display();
 stud.change(101,80.5);
 p->display();
 return 0;
}
 
*****************************************************************
(5)答案

#include <iostream>
using namespace std;
class Student
 {public:
   Student(int n,float s):num(n),score(s){}
   void change(int n,float s) {num=n;score=s;}
   void display() {cout<<num<<" "<<score<<endl;}
  private:
   int num;
   float score;
 };

int main()
{Student stud(101,78.5);
 Student * const p=&stud;
 p->display();
 p->change(101,80.5);
 p->display();
 return 0;
}

来源:c++程序设计第三版谭浩强课后答案

本文链接:http://www.wb98.com/cjia/post/cjia_9.7.html


本站文章搜索:

<< 上一篇下一篇 >>

搜索

Tags列表

赞助商链接