根据返回值重载C ++函数

根据返回值重载C ++函数

我们都知道你可以根据参数重载一个函数:


int mul(int i, int j) { return i*j; }

std::string mul(char c, int n) { return std::string(n, c); } 

你能根据返回值重载一个函数吗?根据返回值的使用方式定义一个返回不同内容的函数:


int n = mul(6, 3); // n = 18

std::string s = mul(6, 3); // s = "666"

// Note that both invocations take the exact same parameters (same types)

您可以假设第一个参数介于0-9之间,无需验证输入或进行任何错误处理。


慕尼黑8549860
浏览 495回答 3
3回答

jeck猫

class mul{public:     mul(int p1, int p2)     {         param1 = p1;         param2 = p2;     }     operator int ()     {         return param1 * param2;     }     operator std::string ()     {         return std::string(param2, param1 + '0');     }private:     int param1;     int param2;};不是我会用它。
打开App,查看更多内容
随时随地看视频慕课网APP