#include <iostream>
using namespace std;
class myclass {
public:
myclass();
myclass(const myclass &o);
myclass f();
};
myclass:: myclass(){
cout<<"Constructing normally"<<endl;
};
myclass:: myclass(const myclass &o){
cout<<"Constructing copy"<<endl;
};
myclass myclass::f(){
myclass temp;
return temp;
};
int main(){
myclass obj;
obj = obj.f();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我在一本书中找到了这个例子,该书显示该程序的输出应该是:
Constructing normally
Constructing normally
Constructing copy
Run Code Online (Sandbox Code Playgroud)
但是当我在我的编译器中编译它时,它只显示下面写的输出
Constructing normally
Constructing normally
Run Code Online (Sandbox Code Playgroud)
里面究竟发生了什么?
c++ ×1