C++之对象包含与成员函数不兼容的类型限定符
今天在写代码的时候碰到一个const的使用问题,大致如下所示:
参考了小伙伴的文章
总结了一下这种类型的错误,参照大家的博客,可以发现这种解释为:
1)const对象只能调用const函数;
2)如果const函数中不小心修改了类成员或者调用了非常量函数,编译器会找出这类错误。
参考的文章:
https://blog.csdn.net/u014038273/article/details/75776593
顺便总结一下const的各种用法
1.const 修饰类的成员变量,表示成员常量,不能被修改。
2.const修饰函数承诺在本函数内部不会修改类内的数据成员,不会调用其它非 const 成员函数。
3.如果 const 构成函数重载,const 对象只能调用 const 函数,非 const 对象优先调用非 const 函数。
4.const 函数只能调用 const 函数。非 const 函数可以调用 const 函数。
5.类体外定义的 const 成员函数,在定义和声明处都需要 const 修饰符
6.const在*的左边,则指针指向的变量的值,不可直接通过指针改变(可以通过其他途径改变);
在*的右边,则指针的指向不可变。简记为“左定值,右定向”。
参考的文章:
https://www.cnblogs.com/2018shawn/p/10853607.html