CATEGORII DOCUMENTE |
Polimorfismul. Clase abstracte
Polimorfismul este capacitatea unui singur obiect de a lua forme multiple. Acest lucru se realizeaza prin intermediul pointerilor. Polimorfismul are la baza mostenirea. Se realizeaza prin intermediul functiilor virtuale.
In exemplul de mai jos am construit o clasa abstracta (folosita pentru un caz general). Din ea deriva clase ce ne ofera posibilitatea de a face citiri si afisari pe numere sau siruri de caractere.
#include<iostream.h>
#include<stdio.h>
class abstract
class numar:public abstract
virtual void afisare()
class sir:public abstract
virtual void afisare()
void main()
Subiect 8.
Sa se realizeze o aplicatie pentru lucrul cu nr complexe:
- constructori de initializare si copiere
- functii operator supraincarcati pentru citire si afisare
- supraincarcarea operatorului + pentru adunarea a doua nr complexe
- supraincarcarea operatorului * pentru inmultirea a doua nr complexe
- supraincarcarea operatorului ! pentru modulul unui nr complex
#include<iostream.h>
#include<math.h>
class complex
complex::complex()
complex::complex(complex &z)
complex::complex (float x, float y)
istream& operator>>(istream& in, complex& z)
ostream& operator<<(ostream& out, complex z)
complex complex:: operator+ (complex t)
complex complex::operator-()
complex complex:: operator* (complex t)
void main()
Subiect 9.
/* Sa se realizeze o aplicatie ptr lucrul cu numere rationale. Se vor folosi operatori supraincarcati.
+ ptr adunarea a doua nr rationale
* ptr inmultirea a doua nr rationale
>> ptr citirea a doua nr rationale
<< ptr afisarea a doua nr rationale */
#include<iostream.h>
#include<math.h>
class rational
int numarator;
int numitor;
int cmmdc(int,int);
void ireductibil();
public:
rational() //constructor de initializare implicit
rational(int,int); //constructor de initializare cu parametri
friend istream& operator>>(istream&,rational&); //citirea unui nr rational
friend ostream& operator<<(ostream&,rational); //afisarea unui nr rational
rational operator+(rational&); //supraincarcarea operatorului + ptr adunarea
a doua nr rationale
rational operator*(rational&); //supraincarcarea operatorului * ptr
inmultirea a doua nr. rationale
int rational::cmmdc(int a,int b)
void rational::ireductibil()
if(numitor<0)
rational::rational(int a,int b)
istream& operator>>(istream& in, rational& r)
ostream& operator<<(ostream& out,rational r)
rational rational::operator+(rational& r)
rational rational::operator*(rational& r)
void main()
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 1281
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved