Loading...
ktbffh96 avatar ktbffh96 2 Точки

Здравейте,

Аз имам още един въпрос към домашното. Имам клас Building, в който имам още един клас Infrastructure. В клас Infrastructure се намират променливите offices и floors, със съответните getter-и и setter-и. Само, че когато в main започна да сравнявам сградите, за да намеря тази с най-много офиси и т.н. не мога да достигна до getter-a на offices, защото кода трябва да изглежда нещо такова:

if (building1.infrastructure.getOffices()) > ....... и т.н. 

а в случая класа Infrastructure, част от класа Building e private и не мога да достигна до него. По какъв начин трябва да си преструктурирам кода за да получа желания резулт, без да променям infrastructure от private на public?

Варианта е да направя още един getter за offices в класа Building, само че не се получава много тафталогия и излишни функции по този начин?

0
12/06/2016 15:16:30
fl3x1324 avatar fl3x1324 60 Точки

Защо не сложиш всички атрибути в класа Building? Можеш спокойно да си ги сетнеш в дефиницията на конструктора, като нали вече имаш прототипите им в класа. Това, което ти искаш да направиш е nested classes. По твоя начин мисля че трябва да използваш сетър за сетъра и гетър за гетъра, не съм много запознат но така ми се вижда логично

0
12/06/2016 20:42:01
GeorgiAD avatar GeorgiAD 0 Точки

Малко късно до да се присъединя, 

​
class Building {
public:
    inline Building(float  newHeight, float  newWidth)
    {
        height = newHeight;
        width = newWidth;
    }
    Building()
    {
        height = 0;
        width = 0;
    }
    float height;
    float width;
    ~Building(){
        cout<< "Destructor was called!\n" << endl;
    }
};
class Specifics{
public:
    inline Specifics(int newFloors, double newSeats, int newEmployee )
    {
        floors = newFloors;
        seats = newSeats;
        employee = newEmployee;
    }
    Specifics()
    {
        floors = 0;
        seats = 0;
        employee = 0;
    }
    int floors;
    double seats;
    int employee;
    
    ~Specifics(){
        cout << "Destructor was called!\n" << endl;
    }
};
class OfficeBuilding{
public:
    
    inline OfficeBuilding(float height, float width, int floors, double seats, int employee)
    {
        building.height = height;
        building.width = width;
        specifics.floors = floors;
        specifics.seats = seats;
        specifics.employee = employee;
    }
    
    double allOffice(){
        _allOffice = ((specifics.seats * specifics.floors) / 35);
        return _allOffice;
    }
    string name;
    Specifics specifics;
    Building building;
    
    ~OfficeBuilding(){
        cout<< "Destructor was called!\n" << endl;
    }

​

Докато highest coeficient вече е обсъждан, аз имам по 'семпли' въпроси:

1. стринг-а за нейм идеи как да го 'извикам' ?

2. Функцийката ми allOffice не я харесва ама никак (къде бъркам?!)

Един вид ми куца дефиницията / употребата на класове и конструктори.  

Малко помощ ?

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.