c++关于临时对象的小问题
来源:百度知道 编辑:UC知道 时间:2024/06/09 19:33:01
完善下列程序,定义每个成员函数和非成员函数,输出必要的信息,检查临时对象何时被创建,何时被析构。
class x
{
public:
x(int);
x(x&);
~x();
};
x f(x);
void main()
{
x a(1);
x b=f(x(2));
a=f(a);
}
//原题目就是这样写的,各位高手帮忙啊~谢谢
class x
{
public:
x(int);
x(x&);
~x();
};
x f(x);
void main()
{
x a(1);
x b=f(x(2));
a=f(a);
}
//原题目就是这样写的,各位高手帮忙啊~谢谢
//定义每个成员函数和非成员函数,输出必要的信息,检查临时对象何时被创建,何时被析构
//以下仅供参考
#include <iostream>
class x
{
public:
x(int el = 0):elem(el)
{
std::cout<<"构造函数被调用"<<std::endl;
}
x(x& a)
{
elem = a.elem;
std::cout<<"拷贝构造函数被调用,elem = "<<elem<<std::endl;
}
virtual ~x()
{
std::cout<<"析构函数被调用"<<std::endl;
}
private:
int elem;
};
x f(x a)
{
std::cout<<"返回x类型的函数f()被调用"<<std::endl;
return a;
}
int main()
{
x a(1);
x b=f(x(2));
a=f(a);
return EXIT_SUCCESS;
}
#include <stdio.h>
class x
{
private:
int nX=-1;
public:
x(int n)
{
nX=n;
printf("构造函数传入参数为%d的对象被创建\n",nX);
}
x(x &n){
nX=n;
printf("构