Bonjour
Alors je redebute en cpp(parce que j'avais commencé il ya deux puis j'avais arreté). Je voudrais juste que vous me disiez ce qui ne vas pas dans l'ecriture (normalisation cu cpp). car j'ai quelques erreurs que je n'arrive pas a resoudre. :je joins quelles unes des erreurs et le code(je l'ai envoyé tout en entier pour que puissiez le voir ).
en vous remerciant pour votre aide.

ps: a l'origine c'est un code en C

: error C2552: 'Tab'*: les éléments qui ne sont pas des agrégats ne peuvent pas être initialisés avec une liste d'initialiseurs
error C2248: 'anna::anna'*: impossible d'accéder à private membre déclaré(e) dans la classe 'anna'

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
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
#include<string.h>
#include <stdlib.h>
#include<conio.h>
#include<iostream>
using namespace std;
const unsigned short int cmax=5;
 
 class anna{
 
		struct  abonne{
        char nom[30];
        int tel;
        };
 
		anna(){
		}
public :int chercheretglibre(abonne *p,int lalim){
	int i;
    for(i=0;i<lalim;i++){
		if((*(p+i)).tel==0){
			break;
		}
	}
return i;                   
		}
/********************************************************
//fin  chercheretage
     
//ajouter une fiche avoir avoir chercher si un etage etait dispo
/*********************************************************/
public :void ajouter(abonne *p){
int saisinum,trouver;
cin >>saisinum;
 
int i=chercheretglibre(p,cmax);
 
if(i<cmax){
cin >>((*(p+trouver)).nom);
cin >>(*(p+i)).tel;
}else{
cout<<"pas tourver";
}
		}
/*************************************************/
	/*affiche les infos de toutes les fiche existantes*/
/****************************************************/
public :void lister(abonne *p,int lalimite){
     cout<<"voici la liste des abonnées\n";
     for (int i=0;i<lalimite;i++)
     {
        cout<<i;
         cout<<(*(p+i)).nom;
        cout<<"\n";
        cout<<(*(p+i)).tel;
         cout<<"\n";
     }
getchar();
}
/***********************************************************/
/*recherche un numero d'etage du tableau dont on a donne en param un nom 
saisi lemot[]*/
/*recherche numero d'etage
 tableau p par le critere saisi lemot[30]
recherche à partir de l'adresse p, le mot lemot dans la limile de lalimite.
si pa trouve elle retourne lalimite, si trouve elle retourne le numéro trouvé*/
/*************************************************************/
public :int search( abonne *p,char lemot[30],int lalimite)
{
int i;
     for(i=0;i<lalimite;i++)
     {
             if(strcmp((*(p+i)).nom,lemot)== 0)
             {
 
			 break;
             }
     }
      return  i; 
getchar();
}
/************************************************************
 Elle demande à User un nom, 
 elle cherche la fiche correspondante à ce nom, à partir de p
 et dans la limite de cmax qu'elle connait.
 si trouvée : elle en affiche les infos
 
**************************************************************/
public :void utilsearch(abonne *p)
{
     char unmot[30];
     int i;
     cout<<"saisissez le nom\n";
     cin>>unmot;
	 getchar();
 
 	i = search(p,unmot,cmax);
 
         if(i<cmax)
         {
                cout<<"\n voici les infos \n";
                cout<<(*(p+i)).nom;cout<<"\n";
                cout<<(*(p+i)).tel;
         }else{ 
                       cout<<"pas trouver"; 
              }      
getchar();
}
/**********************************************************/
/* modifie les informations d'une fiche dont 
on a deja chercher le numero detage*/
/*******************************************************/
public :void modifier(abonne *p){
     char modif[30];
     int i=0;
     int nouveautel;
     cout<<"entrer le nom a changer\n";
     cin>>modif;
	 getchar();
     i=search(p,modif,cmax);
      if(i<=cmax && i!=-1)
         {
                 cout<<"saisir le noueau numero";
                 cin>>nouveautel;
                (*(p+i)).tel=nouveautel;
         }else{
               cout<<"le nom saisi n'existe pas ";
               }
 
     cout<<"le nouveau numero de";
	 cout<<(*(p+i)).nom;
	 cout<<"est";
	 cout<<(*(p+i)).tel;
getchar();
     }
};
/****************************************************/
class valid{
 
public :int main(){
 
struct  abonne Tab[cmax]={{"zzsss",7458}
               ,{"uuu",5555}
               ,{"ggg",2222},
                {"ooo",4444},
                {"îiij",8745}
            };
     char choix;
    do{
           system("clr");//libere le tampon e/s
           cout<<"a pour rechercher\n";
           cout<<"b pour lister\n";
           cout<<"d pour modifier\n";
           cout<<"c pour sortir\n";
 
           cin>>choix;getchar();
 
 
    switch(choix)
    {
                 case 'a':
					 anna *a=new anna();
                      a.utilsearch(Tab);
                      break;
                 case 'b':
					  anna *b=new anna();
                      b.lister(Tab,cmax);
                      break;
                 case 'd':
					  anna *d=new anna();
                      d.modifier(Tab);
                      break;
                 case'f':
					  anna *f=new anna();
                      f.ajouter(Tab);
                      break;
  }
}while((choix!='c') && (choix!='C'));
cout<<"appueyr sur une touche pour sortir";
getchar();
}
}  ;