Mihai Sprinceana
Un forum de programare cu de toate. Va astept sa va inscrieti si sa deveniti moderatori. Oricine este binevenit aici sa se inscrie si sa aiba acces la informatie free! Fiecare este liber sa adauge proiecte programe free etc. Ajutati acest forum sa devina o comunitate puternica unde fiecare invata de la fiecare! Tot ce trebuie sa faceti este sa va inregistrati si fiecare contributie se poate dovedi utila in timp! Forumul este free informatia free dk aveti timp liber ajutati si pe ceilalti si invatati si voi in acelasi timp! Haideti sa facem ceva pt.a ne ajuta intre noi! Cititi regulament postare forum inainte de a posta!
Lista Forumurilor Pe Tematici
Mihai Sprinceana | Inregistrare | Login

POZE MIHAI SPRINCEANA

Nu sunteti logat.
Nou pe simpatie:
simona2000
Femeie
25 ani
Galati
cauta Barbat
25 - 53 ani
Mihai Sprinceana / C++ / POO- Clasa masini Moderat de Alric2rei, Conan, cosmy, fireratbat, profu.info, sade5000
Autor
Mesaj Pagini: 1
Conan
Moderator

Inregistrat: acum 17 ani
Postari: 198
/*Implementati clasa masini folosind cele 3 tipuri de constructori,un
destructor,o functie friend cu referire la un anumit camp,o functie de
afisare*/

#include <conio.h>//directiva contine in prog.principal clrscr() si getch()
#include <iostream.h>//pt.cuvintele cheie cout si cin
#include <assert.h>//foloseste new(alocare) si delete(dealocare)
#include <string.h>//foloseste functia de copiere a sirului strcpy si de
//returnare a lungimii sirului respectiv strlen
#define MAX 15//directiva in care se definesc maxim 15 elemente

//definirea clasei masini
class Masini
  { //zona privata cu date membru
  char *marca,*motorizare,*culoare;//date membru
  int vechime;
  float pret;
  static int nr;//membru static
   public:
     Masini();//constructor implicit
     Masini(char *,char *,char *,int,float);//constructor cu parametri
     Masini(Masini& );//constructor de copiere
     ~Masini();//destructor
     void afisare();//functie de afisare
     friend void serie_motor(Masini& );  //functie friend
     void pointer_this(); //pointer this
     static int getnr();  //functie membru
};

int Masini::nr=0;  //initializare variabila statica
int Masini::getnr()  //initializare fct membru
{
return nr;
}

//definire constructor implicit
Masini::Masini()//nume clasa::si nume fct;definire constructor implicit
{
marca=new char[2];
strcpy(marca," " ); //new-operator de alocare
motorizare=new char[2];
strcpy(motorizare," " );
culoare=new char[2];
strcpy(culoare," " );
vechime=0;
pret=0;
}

//definire constructor cu parametru
Masini::Masini(char *Ma,char *Mo,char *Cul, int V, float P)
{
marca=new char[strlen(Ma)+1];
assert(marca!=0);
strcpy(marca,Ma);
motorizare=new char[strlen(Mo)+1];
assert(motorizare!=0);
strcpy(motorizare,Mo);
culoare=new char[strlen(Cul)+1];
assert(culoare!=0);
strcpy(culoare,Cul);
vechime=V;//pt.date membru intregi se atribuie o variabila sugestiva (V in cazul asta)
pret=P;
}

//definire constructor de copiere
Masini::Masini(Masini&X)
{
marca=new char[strlen(X.marca)+1];
assert(X.marca!=0);
strcpy(marca,X.marca);
motorizare=new char[strlen(X.motorizare)+1];
assert(X.motorizare!=0);
strcpy(motorizare,X.motorizare);
culoare=new char[strlen(X.culoare)+1];
assert(X.culoare!=0);
strcpy(culoare,X.culoare);
vechime=X.vechime;
pret=X.pret;
}

//definire destructor
Masini::~Masini()
{
delete marca;
delete motorizare;
delete culoare;
}

//afisare date membru
void Masini::afisare()
{
cout<<"\nMarca: "<<marca;//afisarea campului marca
cout<<"\nMotorizare: "<<motorizare;//afisarea campului motorizare
cout<<"\nCuloare: "<<culoare;//afisarea campului culoare
cout<<"\nVechime: "<<vechime;//afisarea campului vechime
cout<<"\nPret:"<<pret;//afisarea campului pret
}

//functie friend-ma refer la campul motorizare
void serie_motor(Masini&X)
{cout<<"Acces la un camp al clasei Masini\n";
cout<<X.motorizare;
}

//pointer this-ma refer la campul marca
void Masini::pointer_this()
{cout<<"\nX= "<<marca<<"\nthis->X"<<this->marca<<"\n(*this).X="<<(*this).marca;
}

//programul principal
void main()
{
clrscr();
Masini s("Citroen","Diesel","Blue",3, 5000);//definirea obiectului
Masini s1(s),s2;//definirea pentru constructorul de copiere
Masini tab[10];//definire tablou de obiecte
int i,n;
cout<<"n="; //afisare n
cin>>n;//citire n
/*for (i=0;i<n;i++)
tab[i].initializare();
for (i=0;i<n;i++)
tab[i].afisare();*/
serie_motor(s);
s.afisare();
s.pointer_this();
getch();
}


pus acum 16 ani
   
Pagini: 1  

Mergi la