下面的代碼表示一個多邊形。我希望能夠將一個點(x,y,z的gvector3對象)推送到矢量「頂點」上。我知道vector有一個push_back方法,但由於我已經將頂點聲明爲private,所以我不認爲我可以調用vertices.push_back(gvector3 xyz)。有沒有人對我如何實現這一點有任何建議?使用STD矢量類的多邊形類
#ifndef POLYGON_H
#define POLYGON_H
#include <iostream>
#include <gvector3.h>
#include <vector>
class Polygon {
private:
std::vector <gVector3> vertices;
std::vector <gVector3> color;
public:
///----------------------------------------------------------------
/// Constructors
///----------------------------------------------------------------
/// Default constructor
Polygon();
///----------------------------------------------------------------
/// Getters and Setters
///----------------------------------------------------------------
/// Return vertex/reference to vertex at index
gVector3 operator[](unsigned int index) const;
gVector3 &operator[](unsigned int index);
///----------------------------------------------------------------
/// Draw Polygon
///----------------------------------------------------------------
void drawPolygon(const Polygon &p);
};
std::ostream &operator<<(std::ostream &o, const Polygon p);
#endif // POLYGON_H
爲您的類實現一個['push_back'](http://en.cppreference.com/w/cpp/container/vector/push_back)(或其他更適當命名的)成員函數,然後調用'頂點。 push_back()' – Praetorian