#include <iostream>
using namespace std;
class A
{
public:
int calcuA();
int calcuB();
};
int A::calcuA()
{
cout<<"A"<<endl;
return 10;
}
int A::calcuB()
{
cout<<"B"<<endl;
return 12;
}
int main(int argc, char *argv[])
{
A a;
cout<<a.calcuA()<<endl<<a.calcuB()<<endl;
return 0;
}
输出结果如下
原因:
cout入栈时是从右向左压入栈中。
所以执行的流程如下:
1、先执行a.calcuB(),输出B;
2、将a.calcuB()的结果10存入栈中;
3、执行a.calcuA(),输出A;
4、将a.calcuA()的结果12存入栈中;
5、依次取出栈中元素:输出12、10