当使用 operator <<
时,何时指的是插入运算符,何时指的是按位左移?
以下代码将输出 10
,此时 operator <<
指的是左移运算符。
cout << a.b() << a.a.b << endl;
这将输出11
,operator <<
是插入运算符的一个引用。
cout << a.b();
cout << a.a.b ;
我感到困惑,什么时候使用 cout
结合 operator <<
才会表示左移运算符?
#include <iostream>
using namespace std;
class A {
public:
A() { a.a = a.b = 1; }
struct { int a, b; } a;
int b();
};
int A::b(){
int x=a.a;
a.a=a.b;
a.b=x;
return x;
};
int main(){
A a;
a.a.a = 0;
a.b();
cout << a.b() << a.a.b << endl; // ?????
return 0;
}
int
的类型。这是一个内置的工具。如果重载了<<
,则可以用于其他目的。 - iammilind10
作为位移的结果的结论的? - molbdnilo