son*_*ony 4 c++ variadic-functions
与printf()函数不同,它没有格式说明符,编译器会从那里猜测否。论据。那么在 cout 的情况下会发生什么?
IOStreams 一次只接受一个参数,所以它工作得很好。:)
运算符重载的神奇之处在于:
std::cout << a << b << c;
Run Code Online (Sandbox Code Playgroud)
实际上是这样的:
std::operator<<(std::operator<<(std::operator<<(std::cout, a), b), c);
Run Code Online (Sandbox Code Playgroud)
或这个:
std::cout.operator<<(a).operator<<(b).operator<<(c);
Run Code Online (Sandbox Code Playgroud)
(取决于类型的a,b并且c,无论是游离的功能或成员函数将被调用。)
每个单独的调用都是对一个接受你给它的类型的重载。无需论证计数或格式字符串,因为他们是与你的单一调用printf。
| 归档时间: |
|
| 查看次数: |
18180 次 |
| 最近记录: |