`
qimo601
  • 浏览: 3449300 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

cannot convert 'this' pointer from 'const class A' to 'class A &'

    博客分类:
  • Qt
阅读更多

Error C2662, cannot convert ‘this’ pointer from ‘const class ’ to ‘class &’的解决办法

 

 

解决方法帖子:

http://www.cnblogs.com/clever101/archive/2011/09/21/2184403.html

 

分析原因帖子:

http://blog.sina.com.cn/s/blog_60e96a410100n6ks.html

 

 

解决方法:

原因在于带const修饰符的接口会把this指针转化为为const this类型。网上一种解决办法是,把需要调用的非const接口都改为const,如上例的GetX、GetY和GetZ函数改为:

 

    float GetX() const{return _x;}  
    float GetY() const{return _y;}  
    float GetZ() const{return _z;} 

 

我想到的一种办法是可以直接在内部将const修饰符去掉,具体如下:

分享到:
评论

相关推荐

    Class and Pointer_C++_pointer_class_

    下面我们将深入探讨"Class and Pointer"这个主题,主要关注C++中类中的指针使用。 首先,让我们理解类(class)的基本概念。类是C++中面向对象编程的基础,它定义了一组数据成员(变量)和成员函数(方法),这些...

    const用法 const int *a; int * const a;

    在C++编程语言中,`const`关键字用于声明常量,它可以用来修饰变量、指针、引用等,以限制它们的可变性。本文将详细解释`const`的各种用法。 1. **常量变量**: - `const int a;` 或 `int const a;`:声明了一个...

    Test_const_class.rar_class

    在IT行业中,`const`关键字和类(class)是C++编程语言中的核心概念,它们在软件设计和实现中扮演着重要角色。本篇将详细阐述`const`关键字与类在Linux开发环境中的应用和重要性。 首先,我们来看`const`关键字。在...

    C++中const用法全解

    const 可以修饰类的数据成员,例如:class A{const int size;… }。const 数据成员只在某个对象生存期内是常量,而对于整个类而言却是可变的。因为类可以创建多个对象,不同的对象其 const 数据成员的值可以不同。...

    Google C++ Style Guide(Google C++编程规范)高清PDF

    This separates the implementation from the class definition, while still allowing the implementation to be included where necessary. Another use of -inl.h files is for definitions of function ...

    const int *a int * const a区别实例

    const 关键字在 C++ 中的应用和区别 const 关键字是 C++ 中一个非常重要的关键字,它可以用来修饰变量、指针、函数参数等,使其具有只读属性。本文将对 const 关键字的应用和区别进行详细的总结和分析。 const ...

    C++中的模拟class string类的代码 cpp

    class string{ friend int len(string &); friend const string & operator+(const string &s1,const string &s2); friend std::ostream & operator(std::ostream &theStream,const string & str); friend const...

    c++里const用法归纳

    class A{ const int size; ... } 这里,const数据成员size的值只能在某个对象生存期内是常量,但对于整个类而言却是可变的,因为类可以创建多个对象,不同的对象其const数据成员的值可以不同。 需要注意的是,...

    Const,Const函数,Const变量,函数后面的Const.txt

    ### 关于Const、Const函数与Const变量的理解 在C++编程语言中,`const`关键字是一种类型限定符,被广泛用于提升代码的安全性与可读性。本文将深入探讨`const`的不同用法及其背后的原理。 #### 1. `const`修饰参数 ...

    c语言const的用法详解

    A& operator=(const A& a); }; ``` #### 六、总结 通过上述的介绍,我们可以看到`const`关键字在C语言中的应用非常广泛,不仅可以用来声明只读变量,还可以与指针、类等其他数据类型结合起来使用,帮助开发者...

    Design a class for modeling course and write a test program to test it.

    class Course { private: std::string courseID; std::string courseName; std::string instructorName; int creditHours; std::vector<std::string> students; public: // 构造函数 Course(const std::...

    c语言const用法小结

    const 也可以用来修饰类的数据成员,如 `class A{const int size; ...}`。 const 数据成员只在对象生存期内是常量,对于整个类来说却是可变的。因为类可以创建多个对象,不同的对象其 const 数据成员的值可以不同。...

    Const 用法小结

    class A { const int size; public: A(int s) : size(s) {} }; ``` - 若要定义整个类中恒定的常量,应使用枚举常量,如`enum {size1=100, size2 = 200 };`,枚举常量在编译时被计算,不占用对象的存储空间,...

    const与指针的关系

    - 结论:`p`自身不能被改变,但可以通过`*p`来修改其指向的`int *`的值,如`*p = &a;`是允许的。 #### 三、实际应用中的问题解决 在实际编程中,可能会遇到需要传递不可变的二维数组给函数的情况。例如,假设我们...

    const与static用法完整总结

    ### const与static用法完整总结 #### 一、const关键字详解 **1. 常量定义** 在C++中,`const`关键字用于声明一个常量或对象的一部分为不可变。例如: ```cpp const int max = 100; ``` 此处`max`被声明为一个...

    Test_fconst_2.rar_class A

    Base class for instructions which are of a fixed code size and which use InsnFormat methods to write themselves.

    C++中const使用说明

    - 作为参数:`void fun(const A *a)`或`void fun(const A &a)`,保护了传入的对象或指针内容不被函数内部修改。 - 作为返回值:`const A fun2();`或`const A* fun3();`,防止返回的对象被意外修改。 4. **`const`...

    C语言CONST的使用

    3. 修饰常对象:如const class A a; 4. 修饰常指针:常指针可以分为常量指针和指针常量,常量指针指针变量本身不可变,指向的对象可变;指针常量指针变量可变,指向的对象不可变。 5. 修饰常引用:如const int& v;...

    stdafx.h代码

    // This source code is only intended as a supplement to the // Microsoft Foundation Classes Reference and related // electronic documentation provided with the library. // See these sources for ...

    C++中const关键字详解

    - **位置灵活**: 在声明`const`变量、引用、对象和数组时,`const`与类型说明符的位置可以互换,例如`const int a`与`int const a`等同。 - **修饰顺序**: `const`修饰符的顺序很重要。例如,`const int *p`和`int ...

Global site tag (gtag.js) - Google Analytics