online c++ compile
https://github.com/QuantStack/xeus-cling
#include <iostream>
using namespace std;
//IntNum getNum();
class IntNum{
public:
IntNum(int x=0):xptr(new int(x)){
cout<< "call default constructor ---"<<endl;
}
IntNum(const IntNum &n): xptr(new int(*n.xptr)){
cout<< "call copy constuctor ----" <<endl;
}
IntNum(IntNum && n):xptr(n.xptr){
n.xptr = nullptr;
cout << "call move Constuctor ----"<<endl;
}
private:
int * xptr;
};
IntNum getNum(){
IntNum intNum;
return intNum;
}
main(){
getNum();
getNum();
getNum();
getNum();
}
#include <iostream>
using namespace std;
//IntNum getNum();
class IntNum{
public:
IntNum(int x=0):xptr(new int(x)){
cout<< "call default constructor ---"<<endl;
}
IntNum(const IntNum &n): xptr(new int(*n.xptr)){
cout<< "call copy constuctor ----" <<endl;
}
IntNum(IntNum && n):xptr(n.xptr){
n.xptr = nullptr;
cout << "call move Constuctor ----"<<endl;
}
~IntNum(){
delete xptr;
cout<< "delete deConstructor ---"<<endl;
}
private:
int * xptr;
};
IntNum getNum(){
IntNum a;
IntNum b;
bool flag = true;
if(flag == true)
return a;
else
return b;
// IntNum&& c = IntNum();
// return c;
}
main(){
getNum();
// getNum();
// getNum();
// getNum();
}
执行结果
来源:CSDN
作者:fangyan_1229
链接:https://blog.csdn.net/fangyan_1229/article/details/103652835