使用"常量"的函数重载
Function overload using 'Const'
有两个相同的函数。一个参数带const关键字,另一个参数不带。
void A(const int* p);
void A(int* p);
int main()
{
int x;
A(&x);
return 0;
}
void A(const int* p)
{
cout << "2" << endl;
}
void A(int* p)
{
cout << "1" << endl;
}
- 是函数重载吗?
- 为什么没有const的函数将被称为我的情况?
是函数重载吗?
是的。这两个函数具有相同的名称但不同的参数,因此它们是重载的。
为什么没有
const
的函数会被称为我的情况?
因为x
不是const
。尝试使用指向const int
的指针,您将获得另一个过载:
const int y;
A(&y);
我认为这是最初问题的变体:选自Stroustrup的c++之旅
template<typename T>
class C {
...
public:
...
T& operator[](int i);
const T& operator[](int i) const;
}
根据我的理解,第二个方法将针对不打算修改this-object的情况。我只是想知道编译器是否能够准确地猜测在每个相关的情况下…
相关文章:
- 为什么这个运算符<重载函数对 STL 算法不可见?
- 可以打印矢量和矢量中的矢量的非重载C++函数
- 错误 没有与参数列表匹配的重载函数"getline"实例
- 使用模板重载函数
- C++线程中,没有重载函数接受 X 参数
- std::vector 没有重载函数的实例与参数列表匹配
- C++重载函数,一个采用基类的参数,另一个采用派生类的参数
- 错误:无法解析对重载函数的引用;你的意思是调用它吗?
- 对重载函数find_first_not_of的不明确调用
- 如何从重载解析中删除重载函数?
- CUDA:重载函数"isnan"的多个实例
- C++派生类重载函数(带有 std::function 参数)不可见
- 避免在人为的重载函数调用中拼写出类型
- C++:如何为多个重载函数保留通用代码路径?
- 什么时候可以使用常量装饰调用我的重载函数?
- 尝试使用谓词函数会导致错误:"std::sort"未找到匹配的重载函数
- std::调用,未找到匹配的重载函数
- 为什么在传递长整型时调用具有两个双精度类型的参数的重载函数?
- 为什么使用不匹配的参数调用重载函数仍然有效
- 如何通过签名作为模板参数来解决重载函数?