原本我是打算利用此函数创建数个XX对象,结果一直出错,查了很久,才发现,原来是这坑爹的地址不变
后来改成这样:
事后想想,我把对new的理解参进去了,但它并没有调用new,且new返回的是地址而不是一个对象,他仅仅是一个创建了一次的对象
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返回的是地址而不是一个对象,他仅仅是一个创建了一次的对象