c++程序设计第3版谭浩强课后答案
将第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;
}
本文链接:http://www.wb98.com/cjia/post/cjia_9.7.html
本站文章搜索: