【发布时间】:2013-06-07 14:39:00
【问题描述】:
为什么下面的C++程序输出“ACCA”?为什么operator int() 被调用了两次?
#include "stdafx.h"
#include <iostream>
using namespace std;
class Base {
public:
Base(int m_var=1):i(m_var){
cout<<"A";
}
Base(Base& Base){
cout<<"B";
i=Base.i;
}
operator int() {
cout<<"C";
return i;
}
private:
int i;
};
int main()
{
Base obj;
obj = obj+obj;
return 0;
}
【问题讨论】:
-
仅供参考;这是一个创建 ACCA 的结构,作为给读者的练习。
标签: c++ class operator-overloading