Tablice klas i konstruktory

0

Posiadam nastepujacy problem, w momencie inicjalizacji tablicy, chcialbym uzyc konstruktora innego niz domysly , pytanie jak ? , ewentualnie inicjalizowac tablice konstruktorem domyslnym , i pozniej uzyce innego, ale to raczej nie wchodzi w rachube ... bo nie mozna uzyca 2 razy konstrutora do jednego obiektu !. Probowalem rowniez uzyc metody podaj_dane, lecz wystepuje blad ochrony pamieci, lecz i tak interesuje mnie rozwiązane z uzyciem konstruktora.
Dziekuje za pomoc

Kod programu

#include <iostream>

using namespace std;

class kontakt{
        private : 
		 char imie[20], nazwisko[20];
		 int telefon;
	public : 
		kontakt(){
		strcpy(imie,"Kevin");
		strcpy(nazwisko,"Mitnick");
		telefon=0700;
		}
		
		kontakt(char *im, char *naz, int nr){
		strcpy(imie,im);
   		strcpy(nazwisko,naz);
		telefon=nr;
		}
                
		/*void podaj_dane(char *im, char *naz, int tel){
		strcpy(imie,im);
   		strcpy(nazwisko,naz);8724065
		telefon=tel;*/
		}		

		void wizytowka(){
		cout << "Wizytowka ... " << endl;
		cout << "Imie : " << imie << endl;
		cout << "Nazwisko : " << nazwisko << endl;
		cout << "Telefon : " << telefon << endl;
		cout << "-------" << endl;
		cout << "        " << endl; 
		}			
		};
int main(){

kontakt tablica[10];
for (int i=0; i<=9; i++) tablica[i].wizytowka();
return 0;
}
0

To zależy co chcesz zrobić?

//...
    kontakt tablica[10];
    for (int i=0; i<=9; i++)
        tablica[i].wizytowka();
    
    kontakt init("ja","aaaa", 99);
    vector<kontakt> tab1( 10, init );
    for (int i=0; i<=9; i++)
        tab1[i].wizytowka();
    
    kontakt tab2[10] = 
    {
        kontakt("aa","hh",1),
        kontakt("bb","cc",11111)
    };
    for (int i=0; i<=9; i++)
        tab2[i].wizytowka();

0

marcinEC , dzieki za pomoc :P , wlasnie o takie cos mi chodzilo, to sie chyba nazywalo lista inicjalizacyjna , zapomnialem , THX [!!!] [browar]

1 użytkowników online, w tym zalogowanych: 0, gości: 1