我在 Bruce Eckel 的 Thinking in C++ 中读到,当 C++ 编译器遇到一个函数时,它会使用它的名称和参数来装饰它的名称。对于函数,int func(char ch); 它会将其名称装饰为 _func_char 它不使用返回类型。
在这种情况下,在下面的程序中,当编译器在函数名修饰期间没有存储返回类型时,它如何抱怨“从 int 到 const char* 的无效转换”?谁能澄清一下?
#include <iostream>
using namespace std;
int func()
{
int i = 5;
return i;
}
int main()
{
string str = func();
}