友元函数与运算符重载 — 计算机选择题
题目
阅读代码,表达式 30 - Offset(8) 的结果是什么?
class Offset {
int n;
public:
explicit Offset(int x) : n(x) {}
friend int operator-(int lhs, const Offset& rhs);
};
int operator-(int lhs, const Offset& rhs) { return lhs - rhs.n; }
A. 22 B. 编译错误,因为友元函数不能重载运算符 C. 38 D. 编译错误,因为左操作数必须是 Offset 对象