0

这让我困惑了一段时间:使用 printf,您可以提供格式材料来指示应如何解释参数,但 cout 不需要这样做。cout 如何知道根据正确的类型读取变量?

4

1 回答 1

2

它被称为函数重载。operator<<在 C++ 中,只要它们采用不同的参数集,就可以使用相同的名称(在本例中为名称)拥有任意数量的函数。cout没有规定如何解释参数,编译器会这样做。或者更确切地说,编译器决定调用哪个函数,而该函数决定了参数的格式。编译器知道每个参数的类型,并相应地调用适当的函数。

例如,这调用ostream::operator<<(int)

cout << 10;

而 this 调用ostream::operator<<(double),这是一个完全不同的函数

cout << 3.14;
于 2013-06-30T00:42:17.013 回答