不能将“this”指针从“const CPaopao”转换为“CPaopao &
来源:互联网 发布:网络创业项目 编辑:程序博客网 时间:2024/06/07 19:26
CPoint CPaopao::GetCenter() { return rc.CenterPoint(); }
float CPaopao::Distance(const CPaopao& ortherPaopao){CPoint pt1=GetCenter();CPoint pt2=ortherPaopao.GetCenter();return Distance(pt1, pt2);}
出现如下错误:
error C2662: “CPaopao::GetCenter”: 不能将“this”指针从“const CPaopao”转换为“CPaopao &
原因:
ortherPaopao 为const 常量对象 ,由于const对象在调用成员函数的时候,会将this指针强制转换为const this, 所以它无法找到相应的const GetCenter()。
而且,编译器也无法将一个const对象转换为一个普通对象来调用这个普通的GetCenter()方法,
解决方法:
将GetCenter() 改为常量函数,类的常量成员函数的不会修改类的数据成员。
因为const成员函数中不允许对数据成员进行修改,如果修改,编译器将报错,这大 大提高了程序的健壮性
CPoint CPaopao::GetCenter() const { return rc.CenterPoint(); }
另附:
const型成员函数不能调用非const成员函数
因为 const成员函数是不会改变类的数据成员的值的
但是非const 成员 函数可能会改变的
因此 const 成员 函数是不能调用 非const 成员的。
但是非const 成员 函数可能会改变的
因此 const 成员 函数是不能调用 非const 成员的。
0 0
- 不能将“this”指针从“const CPaopao”转换为“CPaopao &
- 不能将this指针从“const type" 转换为"type &"
- 不能将“this”指针从“const Vehicle”转换为“Vehicle &”
- 不能将“this”指针从“const Vector3D”转换为“Vector3D &" 错误
- error C2662: 不能将“this”指针从“const Node_align”转换为“Node_align &”解决方案
- error C2662: “CMaDirOperation::chang_file_type”: 不能将“this”指针从“const CMaDirOperation”转换为“CMaDirOperat
- 不能将“this”指针从“const Class(某个类)”转换为“Class &" 错误
- error C2662: “int Fraction::numerator(void)”: 不能将“this”指针从“const Fraction”转换为“Fraction &”
- 【C++】不能将“this”指针从“const vector”转换为“vector & rhs"
- 对象引用前加const报错:不能将“this”指针从“const a”转换为“a
- 对象引用前加const报错:不能将“this”指针从“const a”转换为“a
- 对象引用前加const报错:不能将“this”指针从“const a”转换为“a
- 对象引用前加const报错:不能将“this”指针从“const a”转换为“a
- c++;对象引用前加const报错:不能将“this”指针从“const a”转换为“a &”
- 不能将“this”指针从“const XXX”转为“XXX &”
- C++ error C2662: “LinkNode<T> *List<T>::Locate(int)”: 不能将“this”指针从“const List<int>”转换为“List<int> &”
- 不能将参数1从“const char []”转换为“LPCTSTR
- 不能将参数1从“const char []”转换为“LPCTSTR
- 安卓textview编辑部分字体颜色
- Linux tcpdump命令详解
- EclipseLink JPA2.1 jar-file多项目使用说明
- mysql 的基础
- C++直接初始化和复制初始化
- 不能将“this”指针从“const CPaopao”转换为“CPaopao &
- SGE:作业调度系统安装和使用简要说明
- Anaconda安装tensorflow后,spyder无法调用,终端可以。
- Hibernate命名策略自动改变表名或字段名的问题
- 中文排序
- Codeforces Round #410 (Div.2) C.Mike and gcd problem-数学
- 遇见的异常以及其解决方法整理
- 有关UIView、subview的几个基础知识点-IOS开发 (实例)
- 那些被你忽略的Android字符串使用姿势!!!