第五周 阅读程序(4)

问题描述:

本周再补充三个和指针有关的阅读程序,进一步掌握指针工作的原理。
友情提醒:画出内存,让程序的分析,在理性、有序中完成。如果有时间的变化,博客中加个自己画的图。
可以在上机时通过单步执行,进一步和你在人脑中运行程序的过程进行对照。

(4) 请写出程序中const出现的语法现象及其所起的作用
  1. #include <iostream>  
  2. #include <string>  
  3. using namespace std;  
  4. class Student  
  5. {  
  6. public:  
  7.     Student() {}  
  8.     Student( const string& nm, int sc = 0 ): name(nm), score(sc){}  
  9.     //(1)下面的const干神马?_____________出现在函数参数中的const 表示在函数体中不能对这个参数做修改。 
  10.     void set_student( const string& nm, int sc = 0 )   
  11.     {  
  12.         name = nm;  
  13.         score = sc;  
  14. }  
  15.    
  16.     //(2)下面的const分别干神马?如果没有前后两个 const 的话,get_name() 返回的是对私有数据成员 name 的引用,所以通过这个引用可以改变私有成员 name 的值___________函数后面加const表明这个函数不会对这个类对象的数据成员(准确地说是非静态数据成员)作任何改变。
  17.     const string& get_name() const  
  18.     {  
  19.         return name;     
  20. }  
  21.    
  22.     int get_score() const  
  23.     {  
  24.         return score;  
  25.     }  
  26. private:  
  27.     string name;  
  28.     int score;  
  29. };  
  30.    
  31. //(3)下面的const干神马?_____________出现在函数参数中的const 表示在函数体中不能对这个参数做修改。  
  32. void output_student(const Student& student )   
  33. {  
  34.     cout << student.get_name() << "\t";  
  35.     cout << student.get_score() << endl;  
  36. }  
  37.    
  38. int main()  
  39. {  
  40.     Student stu( "Wang", 85 );  
  41.     output_student( stu );  
  42.     return 0;  
  43. }  
  44. 运行结果:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值