#include<iostream.h>

class TrojkatRownoboczny
{
	static int ktory;
	double a, h;
	double P, Obwod;
	const double pierw3;

	public:
	static void Informacje();
	TrojkatRownoboczny(double, double);
	void Dane() const;
	~TrojkatRownoboczny()
	{
		ktory--;
	}
};


TrojkatRownoboczny::TrojkatRownoboczny(double x,double y): pierw3(y)
{
	a = x;
 	h = a*(pierw3)/2;
 	P = a*a*(pierw3)/4;
 	Obwod = 3*a;
 	ktory++;
}

void TrojkatRownoboczny::Informacje()
{
	cout<<"\nKlasa tworzâca obiekty typu trójkât równoboczny\n";

	if(TrojkatRownoboczny::ktory)
		cout<<"stworzono juű "<<TrojkatRownoboczny::ktory<<" takich obiektów"<<endl;
	else
		cout<<"nie istnieje jeszcze űaden obiekt tego typu"<<endl;
}

void TrojkatRownoboczny::Dane() const
{
	cout<<"\nMamy trójkât równoboczny o boku a = "<<a<<"\nwysokoôci h = "<<h<<endl;
	cout<<"Polu P = "<<P<<"\n i obwodzie równym "<<Obwod<<endl;
	cout<<"Obliczeď dokonano przyjmujâc iű pierwiastek z 3 wynosi : "<<pierw3<<endl;
}

int TrojkatRownoboczny::ktory=0;


void main()
{
	// int TrojkatRownoboczny::ktory=0;

	TrojkatRownoboczny::Informacje();
	TrojkatRownoboczny t1(5, 1.732);
	t1.Dane();
	// t1.a=3;			// niedozwolone, kompilator stwierdzi bîâd;

	TrojkatRownoboczny *t2 = new TrojkatRownoboczny(5, 1.73);
	t1.Informacje();	// inny sposób wywoîania funkcji statycznej
	t2->Dane();
	delete t2;

	TrojkatRownoboczny::Informacje();
	cout<<"Wciônij <ENTER> ";
	cin.get();
}
