比方說,我有一個名爲頂點與添加了兩個頂點的方法結構:何時可以安全地將對象值添加到堆中的向量上?
struct vertex {
float x, y, z;
// constructs the vertex with initial values
vertex(float ix, float iy, float iz);
// returns the value c = this + b
vertex operator+(vertex b);
};
vertex::vertex(float ix, float iy, float iz){
this->x = ix; this->y = iy; this->z = iz;
}
vertex vertex::operator+(vertex b){
vertex c;
c.x = this->x + b.x;
c.y = this->y + b.y;
c.z = this->z + b.z;
return c;
}
在另一個調用函數我想補充兩個頂點在一起,結果添加到vector<vertex*>
。何時可以安全地使用返回的值添加到給定的向量?如果從不,我將如何實現它?
例如,
vector<vertex*> v;
vertex a(1, 2, 3);
vertex b(4, 5, 6);
v.push_back(&(a + b));
這澄清了一點,但鑑於此,如果不從操作符函數返回指針,這是一種安全的方法嗎?我想能夠鏈接不同的操作員 - 即a + b + c。 – Asuah 2009-04-27 01:03:42