gpt4 book ai didi

c++ - 是否允许使用因顶级 const-ness 而异的参数重载函数?

转载 作者:太空狗 更新时间:2023-10-29 20:25:10 25 4
gpt4 key购买 nike

当我测试下面的代码时,我感到困惑的是编译器只允许使用顶级常量进行重载:

    void foo(int);
void foo(const int);

int main() {
return 0;
}

编译结果如下:

g++ -O0 testoverloading3.cpp -lm -o testoverloading3 -g -Wall -lpthread -std=c++11

Compilation finished at Wed Jul 9 15:45:35

这与我的理解相矛盾,即顶级 const-ness only 不应重载。我是否遗漏了一些设置?

最佳答案

编译器会考虑这两个声明

void foo(int);
void foo(const int);

作为相同函数的声明。

根据C++标准

— Parameter declarations that differ only in the presence or absence of const and/or volatile are equivalent. That is, the const and volatile type-specifiers for each parameter type are ignored when determining which function is being declared, defined, or called

关于c++ - 是否允许使用因顶级 const-ness 而异的参数重载函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24663635/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com