爲什麼下面的C++程序輸出「ABaBbAc」?C++運算符重載和參數化構造函數
#include "stdafx.h"
#include <iostream>
using namespace std;
class A {
public:
int i;
A(int j=0):i(j)
{
cout<<"A";
}
operator int()
{
cout<<"a";
return 2;
}
};
class B {
public:
B(int j=1):i(j){
cout<<"B";
}
operator int() {
cout<<"b";
return 3;
}
int i;
};
int operator+(const A&a, const B&b){
cout<<"C";
return a.i + b.i;
}
int main()
{
A a;
B b;
int i = (A)b + (B)a;
return 0;
}
你會期望它做什麼? – Beta
這是一個編程面試問題,我無法理解.. – RDX
字符串中的小寫字母a和b表示A和B類型的相應對象resp被轉換爲某個int值 – damienh