Что будет результатом следующей программы?

#include <iostream> 
 
using namespace std; 
 
class A { 
public: 
    A(); 
    friend A &operator+(A &, const int); 
    int getValue() const; 
private: 
    int val; 
}; 
 
A::A() { val = 0; } 
 
int A::getValue() const { return val; } 
 
A &operator+ (A &sa, const int a) { 
    sa.val += a; 
    return sa; 
} 
 
int main(void) { 
  A q, w; 
  w + 3;  // 1 
  q = q + 2;  // 2 
  w = w + q.getValue();  // 3 
  cout << q.getValue() << w.getValue(); 
  return 0; 
} 
ошибка в строке 3
ошибка в строке 1
52
25
ошибка в строке 2