c – ostream deferencing operator <<

为什么这样做很好:

cout << "foo";

虽然这不?

(&cout)->operator<<("foo");

它可以正常使用数值,所以我猜它是与覆盖相关的东西. (我正在使用MS Visual C编译器.)

解决方法:

操作符LT;&LT仅作为有限数量类型的成员函数实现.对于其他类型,它实现为全局重载,如:

std::ostream &operator<<(std::ostream &os, T const &t) { 
    // write the data here
}

您使用的语法仅适用于作为成员函数实现的重载,而不是全局变量.

上一篇:php – 交换两个变量的XOR技巧如何真正起作用?


下一篇:MySql REGEXP运算符