Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstring>
- using namespace std;
- class RealEstate {
- protected:
- char *address;
- int area;
- int price_sqm;
- public:
- //RealEstate(){ address = NULL; }
- ~RealEstate(){ delete [] address; }
- // Regular Constructor
- RealEstate(const char *addr = "", int a = 0, int p = 0){
- address = new char[strlen(addr) + 1];
- strcpy(address, addr);
- area = a;
- price_sqm = p;
- }
- // Assignment Operator
- RealEstate &operator = (const RealEstate &r){
- if(this == &r) { return *this; }
- delete [] address;
- address = new char[strlen(r.address) + 1];
- strcpy(address, r.address);
- area = r.area;
- price_sqm = r.price_sqm;
- return *this;
- }
- // Copy Constructor
- RealEstate(const RealEstate &r){
- address = new char[strlen(r.address) + 1];
- strcpy(address, r.address);
- area = r.area;
- price_sqm = r.price_sqm;
- }
- int price() {
- return price_sqm * area;
- }
- void print(){
- cout << address << ", Kvadratura: " << area << ", Cena po Kvadrat: " << price_sqm;
- cout << endl;
- }
- float estateTax() { return 0.05 * price(); }
- friend istream& operator >> (istream &in, RealEstate &r){
- in >> r.address >> r.area >> r.price_sqm;
- return in;
- }
- const char* getAddress() { return address; }
- };
- class Villa : public RealEstate {
- private:
- int luxury;
- public:
- Villa(const char *addr = "", int a = 0, int p = 0, int l = 0){
- RealEstate::RealEstate(addr, a, p);
- luxury = l;
- }
- void print(){
- cout << address << ", Kvadratura: " << area << ", Cena po Kvadrat: " << price_sqm;
- cout << ", Danok na luksuz: " << luxury << endl;
- }
- float estateTax() { return (0.05 * price()) + ((price() * luxury) / 100); }
- friend istream& operator >> (istream &in, Villa &v){
- in >> v.address >> v.area >> v.price_sqm >> v.luxury;
- return in;
- }
- };
- int main(){
- RealEstate re;
- Villa v;
- cin >> re;
- cin >> v;
- re.print();
- cout << "Danok za: " << re.getAddress() << ", e: " << re.estateTax() << endl;
- v.print();
- cout << "Danok za: " << v.getAddress() << ", e: " << v.estateTax() << endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement