Perché questo causa un errore del compilatore, affermando che i miei riferimenti sono ambigui? Ho uno float
, int
e string
, che dovrebbero tutti creare firme di funzioni separate, giusto?Il riferimento alla funzione è ambiguo
Ecco quello che ho finora:
#include <iostream>
#include <string>
using namespace std;
int plus(int a, int b);
float plus(float a, float b);
string plus(string a, string b);
int main(void)
{
int n = plus(3, 4);
double d = plus(3.2, 4.2);
string s = plus("he", "llo");
string s1 = "aaa";
string s2 = "bbb";
string s3 = plus(s1, s2);
}
int plus(int a, int b) {
return a+b;
} // int version
float plus(float a, float b) {
return a+b;
} // float version
string plus(string a, string b) {
return a+b;
} // string version
In questa chiamata double d = plus (3.2, 4.2); quale funzione ti aspetti di essere chiamata con float o ints? – Slava
Quali righe stanno causando l'errore? – Barmar
@Barmar On 'int n = plus (3, 4); ' ' double d = plus (3.2, 4.2); ' ' string s = plus ("he", "llo"); 'e' string s3 = più (s1, s2); 'tutte le chiamate di funzione a più. – MarJamRob