Bonjour,

je développe habituellement en Java (j'ai de très lointaines connaissances en C), mais je dois utiliser Java Native Interface pour appeler du code C++.
Je me suis donc plongé (par curiosité... et bien grand mal m'en a pris...) dans le code C++ que je dois appeler depuis Java.
Malgré avoir lu les tutos sur l'allocations/désallocation en C++, j'ai des doutes sur ce code, je souhaiterai donc quelques explications svp.

Le développeur utilise la classe suivante :
Code c++ : 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
 
template <int d> class Point
{
public:
	double coord[d] ;
 
Point()
	{
	}
 
Point (const Point& p) // copy from Point
	{
	for (int i=0 ; i < d ; ++i) coord[i] = p.coord[i] ;
	}
 
Point (const double* p) // copy from double*
	{
	for (int i=0; i < d ; ++i) coord[i] = p[i] ;
	}
 
Point& operator = (const Point& p) // assignment
	{
	if ( this != &p ) memcpy(p.coord, coord, d) ; //for (int i=0; i < d ; ++i) coord[i] = p.coord[i] ;
	return *this ;
	}
 
double& operator [] (int i) // coordinate access
	{
	return coord[i] ;
	}
 
const double& operator [] (int i) const
	{
	return coord[i] ;
	}
 
const double* begin() const
	{
	return coord ;
	}
 
const double* end() const
	{
	return coord+d ;
	}
} ;

qui est appelé ensuite dans une fonction.
Code c++ : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
const int d = 2 ;
Point<d> p ;
p[0] = 1.0 ;
p[1] = 2.0 ;
Venant du java, j'ai été surpris que l'on utilise pas "Point<d> p = new Point()". Mais comme on n'initialise pas la classe, je suppose que l'appel à un constructeur vide grace au "new" est inutile. Ai je raison ?

Je suis ensuite surpris par le fait qu'il n'y ai pas de destructeur dans la classe, surtout à cause du fait que la classe contient un tableau de double.
"Point<p> p" une variable locale dans une fonction, donc elle devrait être automatiquement désalloué à la sortie de la fonction. Mais j'ai un doute sur le tableau.

Merci par avance,