J'ai fait le code (incomplet, encore) suivant pour faire une pille(Pilha) de taille 10 des points(Ponto):

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
 
#include <iostream>
#include <cmath>
 
using namespace std;
 
class Par {
 
private: 
    double left;
    double right;
 
public:
    Par() {left = 0; right = 0;}
    Par(double l, double r) {left = l; right = r;}
 
    void set_left(double n) {left = n;}
    void set_right(double n) {right = n;}
    double get_left() const {return left;}
    double get_right() const {return right;}
};
 
class Ponto: public Par {
 
public:
    Ponto():Par() {};
    Ponto(double x, double y):Par(x,y) {};
 
    void set_abc(int x) {set_left(x);}
    void set_ord(int y) {set_right(y);}
    double get_abc() {return get_left();}
    double get_ord() {return get_right();}
    virtual void print() const {
    	cout << "(" << get_left() << "," << get_right() << ")" << endl;}
};
 
template <class C, int I>
 
class Pilha
{
private:
  typedef struct list_node
  { C * elem;
    struct list_node * next;
  }List_node, * List_node_ptr;
 
  List_node_ptr list;
  Ponto C[I];
 
public:
 
  Pilha()
  { list = NULL; }
  virtual bool isempty() const 
  { if (list == NULL)
      return true;
    else return false; }
 
  virtual void listcons(C& x)
  { List_node_ptr aux = new List_node;
    aux->elem = &x;
    aux->next = list;
    list = aux; }
 
  virtual C listhead() const
  { if (isempty())
      { cout << "Lista Vazia"<<endl;
      }
    else 
      return *(list->elem); }
 
  virtual void listtail() 
  { if (isempty())
      cout<<"Lista Vazia"<<endl;
    else
      {	List_node_ptr aux = list;
	list = list -> next;
	delete aux; }
  }
 
 
virtual void printpilha() const
{
 
  List_node_ptr aux = list;
  while (aux != NULL)
    { aux->elem->print();
      aux = aux -> next; }   
}
};
 
 
int main()
{
Pilha <Ponto, 10> pp;
Ponto p(1,2);
Ponto q(3,4);
pp.listcons(p);
pp.listcons(q);
pp.printpilha();
};
Mais le compilateur dit qu'il y a un erreur dans la déclaration du vecteur Ponto C[I]. Je veut un vecteur avec 10 points mais je n'arrive pas a le déclarer! Quelqu'un sait où est le erreur dans la déclaration?

Merci d'avance!