Je souhaite créer un tableau 2D en utilisant un vecteur. Mais, quand je fais cela, je me retrouve en faute. Quelqu'un peut-il s'il vous plaît expliquer ce que je fais mal, et une solution possible pour ce problème.Tableau bidimensionnel utilisant un vecteur
J'ai rendu tout public parce que je ne veux plus traiter avec les getters et les setters maintenant. Je veux que le concept de tableau 2D soit clair.
#include <iostream>
#include <vector>
using namespace std;
class point
{
public:
point():x(0),y(0){}
~point(){}
point(float xx,float yy):x(xx),y(yy){}
float x,y;
};
int main()
{
vector<vector<point> > a; // 2D array
point p(2,3);
a[0][0] = p; // error here
return 0;
}
Mais x et y doivent être publics. Il n'y a pas d'invariant sur le point qui exigerait que les membres soient privés. L'ajout de get_x, get_y, set_x et set_y rendrait toute fonction mathématique sur des points presque impossible à lire. –