第六周实验报告 任务一
2012-03-24 20:12
302 查看
源程序:
源程序:
截图:
上节课听讲不太好···没全听明白···百度了一下错误才找出了两种改法···
不过明白了~
关于倾向哪一种改法的问题···肯定是第二种!!!因为将成员函数也定义成常的会比较保险哈~
(错误主要的原因是const类型的对调用非const类型的方法导致的。
由于const对象在调用成员函数时,会将this指针强制转换成const this指针,它调用成员函数时会去找对应的const Get*函数,而编译器无法将非const类型的Get*函数转换成const类型的Get*函数,因此出现编译错误。
解决方法就是将Get*函数转化为const类型的函数
在对应函数后面加上const关键字
以上是在csdn里一个前辈的教导~)
#include<iostream> using namespace std; class C { public: int x; C(int x) { this -> x = x; } int getX() { return x; } }; void main() { C c(5); cout << c.getX(); system("pause"); }
源程序:
#include<iostream> using namespace std; class C { public: int x; C(int x) { this -> x = x; } int getX() const { return x; } }; void main() { const C c(5); cout << c.getX(); system("pause"); }
截图:
上节课听讲不太好···没全听明白···百度了一下错误才找出了两种改法···
不过明白了~
关于倾向哪一种改法的问题···肯定是第二种!!!因为将成员函数也定义成常的会比较保险哈~
(错误主要的原因是const类型的对调用非const类型的方法导致的。
由于const对象在调用成员函数时,会将this指针强制转换成const this指针,它调用成员函数时会去找对应的const Get*函数,而编译器无法将非const类型的Get*函数转换成const类型的Get*函数,因此出现编译错误。
解决方法就是将Get*函数转化为const类型的函数
在对应函数后面加上const关键字
以上是在csdn里一个前辈的教导~)
相关文章推荐
- 第六周实验报告任务3
- 第六周实验报告(任务一)【this指针】
- 第六周实验报告(任务四)【三角形类】
- 第六周实验报告任务4
- 第六周实验报告任务4
- C++程序设计实验报告(四十三)---第六周任务一
- 第六周实验报告任务 1 下面程序存在编译错误。有两种修改方案,更倾向于那一种?为什么?
- 《C++第六周实验报告5-1》---将任务4的解决用一个项目多个文件的方式实现
- 第六周实验报告 任务四
- 第六周实验报告任务5
- 第六周实验报告(任务1)
- C++程序设计实验报告(四十四)---第六周任务二
- 第六周实验报告(任务5)
- 第六周实验报告任务1
- 《第六周实验报告任务3》
- 第六周实验报告(任务2)
- 《第六周实验报告任务1》
- 第六周实验报告(任务3)
- C++程序设计实验报告(四十七)---第六周任务五
- 第六周实验报告任务2