
// Jegkorong.h
#ifndef __JEGKORONG_H
#define __JEGKORONG_H
#include <iostream>
namespace Jegkorong {
class ReklamCikk {
protected:
static const double alapAr;
public:
virtual double ertek() const = 0;
virtual void kiir() const = 0;
};
class Zaszlo: public ReklamCikk {
static const double zaszloSzorzo;
public:
double ertek() const {
return alapAr * zaszloSzorzo;
}
void kiir() const {
std::cout << "A zaszlo ara $" << ertek() << std::endl;
}
};
class Uto: public ReklamCikk {
static const double utoSzorzo;
public:
double ertek() const {
return alapAr * utoSzorzo;
}
void kiir() const {
std::cout << "A uto ara $" << ertek() << std::endl;
}
};
class Korcsolya: public ReklamCikk {
static const double korcsolyaSzorzo;
public:
double ertek() const {
return alapAr * korcsolyaSzorzo;
}
void kiir() const {
std::cout << "A korcsolya ara $" << ertek() << std::endl;
}
};
}
#endif // __JEGKORONG_H
// Jegkorong.cpp
#include "Jegkorong.h"
namespace Jegkorong {
const double ReklamCikk::alapAr = 500;
const double Zaszlo::zaszloSzorzo = 0.3;
const double Uto::utoSzorzo = 1.4;
const double Korcsolya::korcsolyaSzorzo = 2.2;
}
// Main.cpp
#include <iostream>
#include "Jegkorong.h"
using namespace std;
using namespace Jegkorong;
int main() {
ReklamCikk *P[3];
P[0] = new Zaszlo();
P[1] = new Uto();
P[2] = new Korcsolya();
for (int i = 0; i < 3; i++) {
P[i]->kiir();
delete P[i];
}
return 0;
}