C++ 如何在传递给多态函数的不同类型的值之间进行选择?

C++ 如何在传递给多态函数的不同类型的值之间进行选择?,c++,conditional-operator,C++,Conditional Operator,数字和字符串都可以通过传递此表达式的类型是什么 ((___0607sqrt(a) != 0) ? ___0607sqrt(a) : "?") 它是int还是char*?编译器也不知道 编译器需要:左侧的表达式与三元组中:右侧的表达式类型相同或可转换 更好: cout << "sqrt(" << a << ") = " << ((___0607sqrt(a) != 0) ? std::to_string(___0607sqrt(a)) : "?")

数字和字符串都可以通过
传递此表达式的类型是什么

((___0607sqrt(a) != 0) ? ___0607sqrt(a) : "?")
它是
int
还是
char*
?编译器也不知道

编译器需要
左侧的表达式与三元组中
右侧的表达式类型相同或可转换

更好:

cout << "sqrt(" << a << ") = " << ((___0607sqrt(a) != 0) ? std::to_string(___0607sqrt(a)) : "?");

cout,因为错误告诉您从
\uuuuu 0607sqrt(a):“?”
中获得的类型是不同的,并且它们是不允许的。这与你的问题无关?你发布的内容没有多大意义。旁白:
\uuuuuuu 0607sqrt
是保留名称,请选择其他名称
\uuuuuuuuu 0607sqrt
是保留名称吗?我在谷歌上搜索了一下,除了这一页,它什么也没找到。或者您指的是名称中的两个前导下划线是保留的名称?@selbie“所有以下划线和大写字母或另一个下划线开头的标识符始终保留供任何使用。”
Error (active)  E0042   operand types are incompatible ("int" and "const char *")   Basic programming   C:\Users\szeva\Desktop\Basic programming\Basic programming\Source.cpp   2316    
int ___0607sqrt(int n)
{
    for (int i = 1, j = 1; i < n; i++)
    {
        n -= j;
        j += 2;
        if (n == j)return i + 1;
    }
    return 0;
}
((___0607sqrt(a) != 0) ? ___0607sqrt(a) : "?")
cout << "sqrt(" << a << ") = " << ((___0607sqrt(a) != 0) ? std::to_string(___0607sqrt(a)) : "?");