❥关于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++基础——C++面向对象之重载与多态基础总结(函数重载运算符重载多态的使用)