Explorați Cărți electronice
Categorii
Explorați Cărți audio
Categorii
Explorați Reviste
Categorii
Explorați Documente
Categorii
#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
using namespace std;
class CPunctText {
private:
int x, y, lungSir;
char* sNume;
public:
CPunctText();
CPunctText(int ix, int iy,const char *sText = "Punct");
CPunctText(CPunctText& pct);
~CPunctText();
void afisare() {
cout << "\nObiectul are x= " << x;
cout << "\nObiectul are y= " << y;
cout << "\nObiectul are sirul: " << sNume << endl;
}
void suma(CPunctText, CPunctText);
void distanta();
};
CPunctText::CPunctText() {
cout << "\nConstructor standard\n";
lungSir = 20;
sNume = new char[lungSir];
}
CPunctText::CPunctText(CPunctText& pct) {
cout << "\nConstructor de copiere\n";
sNume = new char[pct.lungSir];
x = pct.x;
y = pct.y;
lungSir = pct.lungSir;
strcpy(sNume, pct.sNume);
}
CPunctText::~CPunctText() {
cout << "\nDestructor\n";
delete[]sNume;
}
void CPunctText::distanta() {
float d;
d = sqrt((float)x * (float)x + (float)y * (float)y);
cout << "\nDistanta de la pct la origine este: " << d;
}
void main() {
int x1, x2, y1, y2;
char nume1[20], nume2[20];
cout << "\tx1: ";
cin >> x1;
cout << "\ty1: ";
cin >> y1;
cout << "Nume 1: ";
cin >> nume1;
cout << "\tx2: ";
cin >> x2;
cout << "\ty2: ";
cin >> y2;
cout << "Nume pct 2: ";
cin >> nume2;
CPunctText pct1(x1, y1, nume1), pct2(x2, y2, nume2);
cout << "Punct 1: ";
pct1.afisare();
cout << "Punct 2: ";
pct2.afisare();
CPunctText s;
s.suma(pct1, pct2);
cout << "\nPunctul format din suma celor doua puncte: \n";
s.afisare();
s.distanta();
}