const限定形参的重载

来源:互联网 发布:龙卷风网络收音机 mac 编辑:程序博客网 时间:2024/06/01 09:22

//int *const p 情况

#include <iostream>

using namespace std;
class A {
public:
void func(int *p)
{
cout << "int *p" << endl;
}
void func(int *const p)
{
cout << "int *const p" << endl;
}
};
int main(void)
{
A a;
int c = 100;
a.func(&c);
return 0;

}

输出:

t4.cpp:10:7: error: ‘void A::func(int*)’ cannot be overloaded
  void func(int *const p)
       ^
t4.cpp:6:7: error: with ‘void A::func(int*)’
  void func(int *p)
       ^

此时func函数不可重载,const只是表示p指针不能改变,与指针指向的变量无关;

//const int *p情况

#include <iostream>
using namespace std;
class A {
public:
void func(int* p)
{
cout << "int *p" << endl;
}
void func(const int *p)
{
cout << "const int *p" << endl;
}
};
int main(void)
{
A a;
int c = 100;
const int d = 100;
a.func(&c);
a.func(&d);
return 0;
}
using namespace std;
class A {
public:
void func(int* p)
{
cout << "int *p" << endl;
}
void func(const int *p)
{
cout << "int *const p" << endl;
}
};
int main(void)
{
A a;
int c = 100;
const int d = 100;
a.func(&c);
a.func(&d);
return 0;
}

输出:

int *p
int *const p

此时const与变量有关,表示变量是常量,不可改变

0 0
原创粉丝点击