Je sais le faire en c# mais en c++ imbriquation de classe tableau
Bonjour,
Voici mon problème.
j'aimerai pouvoir écrire ceci avec des classes imbriquées dont une d'elle est un tableau de d'objets.
TBox.Text = StationTravail[nStation].SetNum[ParamNum].StartPosition.ToString();
en c# on fait ca:
fichier Cs de classe:
Code:
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
|
public class StationDeTravail
{
// Déclaration du tableau de station_SETOFPARAM
public station_SETOFPARAM[] SetNum;
// Déclaration general properties
public general_Properties Properties;
//constructeur
public StationDeTravail(int NbreParam)
{// Initialisation du tableau
SetNum = new station_SETOFPARAM[NbreParam];
// Pour chaque élément du tableau
for (int inc = 0; inc < NbreParam; inc++)
{ SetNum[inc] = new station_SETOFPARAM(); }// Initialisation de l'élément
Properties = new general_Properties();
}
public class station_SETOFPARAM
{//class Station_SETOFPARAM
public UInt32 StartPosition; // position de départ
public UInt16 EndPosition; // position de fin
}
public class general_Properties
{//class general_Properties
public bool b_ShowHideStation;//Station visible ou pas
}
} |
Utilisation dans main:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| public partial class MainHmi : Form
{
private List<StationDeTravail> StationTravail;
private int nStation = 1;
private ParamNum = 1;
public MainHmi()
{
InitializeComponent();
//prg own objects
StationTravail = new List<StationDeTravail>(); // Instancie la liste
for (int inc = 0; inc < 5; inc++) // Pour chaque élément du tableau
{StationTravail.Add(new StationDeTravail(6));}/*Initialisation des stations*/
//par exemple pour l'exemple
//station 1 param 1
TBox.Text = StationTravail[nStation].SetNum[ParamNum].StartPosition.ToString();
TBox2.Text = StationTravail[nStation].SetNum[ParamNum].EndPosition.ToString();
ParamNum = 2;//station 1 param 2
TBox.Text = StationTravail[nStation].SetNum[ParamNum].StartPosition.ToString();
TBox2.Text = StationTravail[nStation].SetNum[ParamNum].EndPosition.ToString();
nStation = 2;//station 2 param 2
TBox.Text = StationTravail[nStation].SetNum[ParamNum].StartPosition.ToString();
TBox2.Text = StationTravail[nStation].SetNum[ParamNum].EndPosition.ToString();
} |
mais en c++ c'est différent...
dans le fichier .h
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| public class StationDeTravail
{
virtual ~StationDeTravail(void);//destructeur
// Déclaration du pointeur tableau de station_SETOFPARAM
public:
*station_SETOFPARAM[] ;
// Déclaration general properties
general_Properties Properties;
//constructeur
StationDeTravail(int NbreParam) { };
class station_SETOFPARAM
{//class Station_SETOFPARAM
public :
uint32_t StartPosition; // position de départ
uint16_t EndPosition; // position de fin
};
class general_Properties
{//class general_Properties
public:
bool b_ShowHideStation;//Station visible ou pas
};
} |
dans le fichier .cpp
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| StationDeTravail::StationDeTravail(int NbreParam)
{
// Initialisation du tableau
*station_SETOFPARAM[NbreParam] SetNum;
// Pour chaque élément du tableau
for (int inc = 0; inc < NbreParam; inc++)
{ SetNum[inc] = new station_SETOFPARAM(); }// Initialisation de l'élément //allocation dynamique
Properties = new general_Properties();
}
StationDeTravail::~StationDeTravail(void)
{
} |
Je m'en sors pas...:oops::weird:
Merci pour votre aide.