函数的返回值的内存地址不变

原本我是打算利用此函数创建数个XX对象,结果一直出错,查了很久,才发现,原来是这坑爹的地址不变
diaotong producedtong( Point &p1 , Point &p2 , Point &p3 ){
	GLint ymax = p1.y, xmin = p2.x, m_fan;
	if( p1.y < p2.y ) {ymax = p2.y; xmin = p1.x;}
	m_fan = ( p1.x - p2.x ) / ( p1.y - p2.y );
	if( p3.y < p1.y ) xmin += m_fan; 
	diaotong *dt = new diaotong( ymax , xmin , m_fan );
	return (*dt);
}


后来改成这样:
diaotong *producedtong( Point &p1 , Point &p2 , Point &p3 ){
	GLint ymax = p1.y, xmin = p2.x, m_fan;
	if( p1.y < p2.y ) {ymax = p2.y; xmin = p1.x;}
	m_fan = ( p1.x - p2.x ) / ( p1.y - p2.y );
	if( p3.y < p1.y ) xmin += m_fan; 
	diaotong *dt = new diaotong( ymax , xmin , m_fan );
	return (dt);
}



事后想想,我把对new的理解参进去了,但它并没有调用new,且new返回的是地址而不是一个对象,他仅仅是一个创建了一次的对象
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值