Following is the description of all data member and member functions of respective classes:
? Data members for PropertyCategories:
o SocietyName: This data member will be used to know the society/town name from where flat, house or plot belongs to.
o Area: Total area covered by the plot, flat or house. Area will be in square feet or Marla unit.
? Methods for PropertyCategories:
o Constructor(s) and destructor.
o Setter and getter function for Area and SocietyName data members.
? Data members for Plot:
o PlotNo: A number associated with a plot will be shown to user.
? Methods for Plot:
o Constructor(s) and destructor.
o Setter and getter function for PlotNo data member.
o isPlotAllotted () will ensure whether plot is already allotted or not. If plot is not already allotted to anyone then assign it to current user and make it allotted.
o isCornerPlot () will check whether current plot is corner plot or not. You can take input from user in this regard.
o isDeveloped () this will ensure that whether plot is in developed status or not. A plot is consider to be developed if, facilities such as electricity, gas, road etc are available, otherwise it will be consider undeveloped plot.
? Data members for Flat
o FlatNo: A number associated with a flat will be shown to user.
? Methods for Flat
o Constructor(s) and destructor.
o Setter and getter function for FlatNo data member.
o isOccupied() will check whether this flat is available for rent, selling purpose or not. If anyone is staying in the flat then we can’t rent out or sell this flat.
? Data members for House
o HouseNo: A number associated with a house will be shown to user.
? Methods for House
o Constructor(s) and destructor for class.
o Setter and getter function for HouseNo data member.
o isOccupied() will check whether this house is available for rent, selling purpose or not. If anyone is staying in this house then we can’t rent out or sell this house.
Important Points:
1. You also have to show the relationship (inheritance, association, aggregation, composition) between classes in proper C++ syntax with comments. No marks will be given for incorrect relationship.
2. Dynamically allocate memory where required.
3. Implement all member functions of each class. Make sure you use most appropriate return types and signatures for the function.
4. Implement constructors of all classes (Overload constructors if required also can use copy constructor if required).
5. Overload and override member functions in classes (if required).