菜鸟问问题,悬赏关注
  • 板块学术版
  • 楼主920106970146Y
  • 当前回复4
  • 已保存回复4
  • 发布时间2023/6/3 20:27
  • 上次更新2023/10/23 13:57:32
查看原帖
菜鸟问问题,悬赏关注
475065
920106970146Y楼主2023/6/3 20:27

问题

以下代码为什么只进行一次拷贝代码,不是返回值跟a不是同一个,是另一个同类不同对象,由a进行拷贝拷贝函数得,p c=work()不是跟p c=同类对象 一样要再把右侧对象进行拷贝函数得吗?

代码

#include <iostream>

using namespace std;

class p {
	int dp;
public:
	p(){
		cout << "1" << endl;
	}
	p(const p& o) {
		cout << '3' << endl;
		dp = o.dp;
	}
	~p() {
		cout << "2" << endl;
	}
};

p work() {
	p a;
	cout << (int)&a << endl;
	return a;
}

int main()
{
	p c = work();
}
2023/6/3 20:27
加载中...