#include
// definicja klasy, pola prywatne + metody publiczne
class TFaktura
{
private: //sekcja prywatna, tylko metody tej klasy mogą tu grzebać, nie da się tego zrobić z zewnątrz (nie piszę o klasach zaprzyjaźnionych)
double netto; //pole netto typu zmiennoprzecinkowego podwójnej precyzji (jak w zwykłej strukturze)
double vat;
double brutto;
public:
void WstawNetto(float); //deklaracja (sam nagłówek) funkcji należącej do klasy, czyli tzw. metody
void WstawVat(float);
void WstawBrutto(float);
void PodajWszystko();
void Oblicz();
}; // <- nie przegap tego średnika 
// definicje metod
void TFaktura::WstawNetto(float n) //definicja metody (jej ciało czyli co ma robić)
{
netto=n; //przepisuję to co dostałem jako argument do wnętrza klasy (to co w sekcji prywatnej dostępne tylko przez metody)
};
void TFaktura::WstawVat(float vat)
{
this->vat=vat; // jeśli parametr nazywa się tak samo, można użyć (wtedy trzeba) wskaźnika “this”
// ten wskaźnik pokazuje samą siebie “klasę”
};
void TFaktura::Oblicz()
{
brutto = netto + vat/100.0 * netto; //chyba tak się dodaje VAT 
};
void TFaktura::PodajWszystko()
{
cout << "netto " << netto << endl << "brutto " << brutto << endl << "vat " << vat << endl;
};
// a potem wypróbuj czy działa
int main()
{
TFaktura fakturka; //Deklaracja obiektu typu TFaktura
fakturka.WstawNetto(100); // Używamy metod tego obiektu
fakturka.WstawVat(22); // Programowanie obiektowe “woli” żeby grzebać w klasie tylko poprzez metody
fakturka.Oblicz(); // nie dopuści zrobienia czegoś takiego np. fakturka.vat = 0.22; (bo pole vat jest prywatne vide wyżej)
fakturka.PodajWszystko();
system(“pause”); // To możesz wywalić, ja używam DevCpp (darmowy) i tak zatrzymuję program konsolowy
return 0;
}
//ps. dodaj sobie analogicznie inne metody