函数返回值为一个类
class Sample
{
int val;
std::string name;
public:
Sample(int data, std::string str):val(data),name(str){}
};
Sample fun()
{
Sample tmp(2,"xxx");
return tmp;
}
int main()
{
fun();
return 0;
}
fun();
00C0174E lea eax,[ebp-0E8h]
00C01754 push eax
00C01755 call fun (0C01159h)
00C0175A add esp,4
00C0175D lea ecx,[ebp-0E8h]
00C01763 call Sample::~Sample (0C01154h)
call fun 这一句前有一个push eax, 一般而言,call前 把一些值压到栈中,是做参数,,,,
fun这个函数是没有参数的啊??
lea eax,[ebp-0e8h] 这一句, 取某个变量的地址, main 函数中没有变量啊。。。。
[解决办法]
不好意思,没有细看。
只不过对于你的问题不同编译器及编译平台是有不同答案的,完全取决于编译器怎么做。
如果使用汇编语言,有很多种方案。
[解决办法]