c++ - 返回类型的C++ 重载

  显示原文与译文双语对照的内容
124 1

关于这个话题,我读了几个问题,但这对我来说却。我刚开始学习 C++,我还没有学习模板或者操作符重载等等。

现在有一个简单的方法来

class My {
public:
 int get(int);
 char get(int);
}

没有模板或者奇怪行为?还是我应该

class My {
public:
 int get_int(int);
 char get_char(int);
}

时间:原作者:0个回答

59 2

不存在。你不能基于返回类型重载方法。

重载解析考虑了英镑函数签名。函数签名由以下内容组成:

  • 函数名
  • cv限定符
  • 参数类型

下面是报价:

1.3.11 签名

有关参与重载解析( 13.3 )的函数的信息:它的parameter-type-list ( 8.3.5 ),如果函数是类成员,则函数本身上的cvs限定符( 如果有的话) 和声明成员函数的类。[... ]

选项:

1 ) 更改方法名称:

class My {
public:
 int getInt(int);
 char getChar(int);
};

2 ) 输出参数:

class My {
public:
 void get(int, int&);
 void get(int, char&);
}

3 ) 模板。在这里情况下过多。

原作者:
...