❥关于C++之const重载与调用
Posted itzyjr
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了❥关于C++之const重载与调用相关的知识,希望对你有一定的参考价值。
#include <iostream>
using namespace std;
struct A
int count()
cout << "non const" << endl;
return 1;
int count() const // 调用对象不能被修改
cout << "const" << endl;
return 1;
int count(int& s)
cout << "non const(ref arg)" << endl;
return 1;
int count(const int& s) // 参数不能被修改
cout << "const(ref arg)" << endl;
return 1;
;
int main ()
A a;
a.count();// 调用对象不是const
const A ca;
ca.count();// 调用对象是const
a.count(4);// 参数是const
int x = 4;
a.count(x);// 参数不是const
return 0;
non const
const
const(ref arg)
non const(ref arg)
从上面的输出结果我们也可以看到:
1. const修饰的对象调用的是使用const修饰的方法,非const对象调用的是非const的方法。
2. 不只是参数类型和个数不同会产生重载,const修饰的参数也会有重载。但是只有当const修饰的是指针或者引用类型时才可以,普通的int和const int会编译失败!
以上是关于❥关于C++之const重载与调用的主要内容,如果未能解决你的问题,请参考以下文章
在非常量对象上,为啥 C++ 不调用具有 public-const 和 private-nonconst 重载的方法的 const 版本?
C++类和对象(this指针6个默认成员函数const成员)