关于const
来源:互联网 发布:软件环境是什么 编辑:程序博客网 时间:2024/06/11 20:33
#include<iostream>using namespace std;class F{int n;int d;public:F(int n=0, int d=1):n(n),d(d){};friend istream& operator>>(istream& in,F& a);int getn(){return n;}int getd(){return d;}};istream& operator>>(istream& in,F& a){char c;in>>a.n>>c>>a.d;return in;}ostream& operator<<(ostream& out,const F& a){out<<a.getn()<<'/'<<a.getd();return out;}int main(){F a,b;cout<<"输入两个分数"<<endl;cin>>a>>b;cout<<a<<b;getchar();}
上述代码报错:error C2662: “F::getn”: 不能将“this”指针从“const F”转换为“F &”1> 转换丢失限定符
由于const对象在调用成员函数的时候,会将this指针强行转换为const this,所以它将无法找到相应的const getn()和getd()函数,并且编译器也无法将一个const的对象转化为一个普通对象来调用这个普通的getn()和getd()方法,所以就会产生如题的编译错误
解决方法:
int getn()const{return n;}int getd()const{return d;}参数是const修饰的函数其内部调用的类成员函数也必须是const
阅读全文
0 0
- 关于const
- 关于const
- 关于const
- 关于const
- 关于const
- 关于const
- 关于const
- 关于const
- 关于const
- 关于const
- 关于 const
- 关于const
- 关于const
- 关于const
- 关于const
- 关于const
- 关于const
- 关于const
- 16讲 序列!序列!
- 幂方的最后一位
- C++中的默认函数与default和delete用法
- 数据结构实验之链表七:单链表中重复元素的删除
- 初级程序员只会Ctrl + C + V
- 关于const
- flask-cache 之缓存cache实现原理
- 程序员面试宝典随笔记(一)-----malloc和new分析
- 参数为数组类型时参数为空取全部数据写法
- 在Linux中如何开启VNC服务
- 运行PL/SQL时只输出anonymous block completed
- Websocket
- 佳能照片打印软件(My Image Garden) v3.6.1 官方版下载
- 解锁Retrofit -- 浅析Retrofit源码