小编jmm*_*mom的帖子

operator <<何时指向插入运算符以及何时指向左移位?

什么时候operator <<引用插入操作符,什么时候引用按位左移?

这将输出10,并operator <<指向左移.

cout << a.b() << a.a.b << endl;  
Run Code Online (Sandbox Code Playgroud)

这将输出11,operator <<指的是插入运算符.

cout << a.b();
cout << a.a.b ;
Run Code Online (Sandbox Code Playgroud)

我很困惑,什么时候operator <<(使用时cout)会参考左移算子?

#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(); …
Run Code Online (Sandbox Code Playgroud)

c++ operator-overloading associativity

23
推荐指数
5
解决办法
3023
查看次数

标签 统计

associativity ×1

c++ ×1

operator-overloading ×1