class AA
{
public:
AA(int a): a_(a) {}
AA &operator *(const AA a) {
a_ *= a.a_;
return *this;
}
operator int() {return a_;}
private:
int a_;
};
AA operator *(const AA &a, const AA &b)
{
return AA(a) * b;
}
int main()
{
AA c = AA(3) * AA(2);
return c;
}