gpt4 book ai didi

c++ - 函数重载在C++中只能通过返回值和const来完成?

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

除了返回类型和常量之外,是否可以有相同函数的两个版本?

我不这么认为。下面的例子说明了这一点。但我不知道原因。

#include<iostream>
using namespace std;
class A
{
private:
int bb ;
public:
double f1(int a) const {cout << "double f1 is called " << endl; return 0.0; }
int f1(int a) {cout << "int f1 is called " << endl ; return 0; }

};

int main()
{
int b = 6;
A aa;

double c= aa.f1(b);
return 0 ;
}

输出:

int f1 被调用

为什么 double f1(int a) const 不能计数?

最佳答案

由于显而易见的原因,您不能重载返回类型。

不过,您可以重载隐式实例参数的常量性。比较:

aa.f1(b);
static_cast<A const &>(aa).f1(b);

(这个例子也说明了为什么尝试“重载返回类型”没有意义:在这个例子中你会如何做出决定?)

关于c++ - 函数重载在C++中只能通过返回值和const来完成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9832051/

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