Да се създаде клас за работа с точки от равнината, съдържащ методи за:
- Въвеждане координатите на точката от клавиатурата
- Извеждане на данните за точката на екрана
- Проверка дали точката е на оста X
- Проверка дали точката е на оста Y
- Проверка в кой квадрант е точката
- Проверка дали точката съвпада с друга точка
Да се направи програма, демонстрираща тези методи.


Ето го и решението на задачата:
#include <iostream> using namespace std; // дефиниция на класа class Tochka // заглавна част на дефиницията { // тяло на дефиницията public: // ниво на достъп до данните int x; // член данни int y; Tochka(); // конструктор по подразбиране Tochka(int x, int y); // конструктор с параметри Tochka(const Tochka &t);// конструктор за копиране void vhod(); // мутатор void pechat() const; // функция за достъп bool naX() const; // проверка дали лежи на оста X bool naY() const; // проверка дали лежи на оста Y int kvadrant() const; // проверка в кой квадрант е bool savpada(const Tochka &t); // дали съвпада с друга точка ~Tochka(); // деструктор }; Tochka::Tochka() { x=y=0; } Tochka::Tochka(int x, int y) { this->x=x; // използване на this this->y=y; } Tochka::Tochka(const Tochka &t) { x=t.x; y=t.y; } Tochka::~Tochka() { cout<<"Razrushava "; pechat(); } void Tochka::vhod() { cout<<"x="; cin>>x; cout<<"y="; cin>>y; } void Tochka::pechat() const { cout<<'('<<x<<','<<y<<')'<<endl; } bool Tochka::naX() const { return y==0; } bool Tochka::naY() const { return x==0; } int Tochka::kvadrant() const { if((x>0)&&(y>0)) return 1; else if((x<0)&&(y>0)) return 2; else if((x<0)&&(y<0)) return 3; else if((x>0)&&(y<0)) return 4; else 0; } bool Tochka::savpada(const Tochka &t) { return (x==t.x)&&(y==t.y); } int main() { Tochka a; // използва се конструктора по подразбиране Tochka b(10, 20); // използва се конструктора с параметри cout<<"Danni za tochka a:\n"; a.vhod(); // извикване на метод мутатор за обекта Tochka *pc = new Tochka(a); // динамична променлива, викаща конструктора за копиране pc->x = 0; // достъп до член-данна на обект, който е динамична променлива cout<<"Danni za tochka b:\n"; cout<<'('<<b.x<<','<<b.y<<")\n";// достъп до член-данни на обект, който е статична променлива cout<<"Danni za tochka c:\n"; pc->pechat(); // извикване на метод за достъп на обекта if(a.naX()) cout<<"Tochkata A e na osta X\n"; if(b.naY()) cout<<"Tochkata B e na osta Y\n"; cout<<"Tochkata A se namira v "<<a.kvadrant()<<" kvadrant\n"; if(b.savpada(a)) cout<<"Tochkata B savpada s A\n"; delete pc; // извикване на деструктор за разрушаване на обекта system("pause"); return 0; }Ето и няколко примерни програми, използващи този клас:
Tochka G(0,-6); if (G.naX()) cout<<"Leji na osta X. "<<endl; else cout<<"Ne leji na osta X."<<endl;