организация классов c ++ с использованием уровня доступа - PullRequest
0 голосов
/ 25 июня 2018

Я новичок в C ++. У меня есть проект по созданию библиотеки для моего робота. В основном, основным классом является ROBOT, тогда вторые уровни: LIGHT, MOTOR. Затем для уровня LIGHT существуют методы: Set_ON_OFF, Set_color, Set_brightness. Для уровня MOTOR существуют методы: Set_right_left, Set_power, Set_move_back. Таким образом, многоуровневый класс ROBOT организован так:

ROBOT

  1. LIGHT
    • Set_ON_OFF
    • Set_color
    • Set_brightness
  2. MOTOR
    • Set_right_left
    • Set_power
    • Set_move_back

В основной программе я хочу вызвать такие методы:

ROBOT obj_robot;

obj_robot.LIGHT.Set_ON_OFF = 1;
obj_robot.LIGHT.Set_color= 135;
obj_robot.LIGHT.Set_brightness= 75;

obj_robot.MOTOR.Set_right_left= 0;
obj_robot.MOTOR.Set_power= 85;
obj_robot.MOTOR.Set_move_back= 1;

Как я могу реализовать такую ​​организацию классов?

Спасибо за вашу помощь.

Cedric

Ответы [ 2 ]

0 голосов
/ 25 июня 2018

Вы можете создать свою организацию следующим образом (существует множество различных решений):

class Light{
public:
    void setOnOff(int on) { m_on = on; }
    void setColor(int color) { m_color = color; }
    void setBrightness(int brightness) {m_brightness = brightness;}
private:
    int m_on;
    int m_color;
    int m_brightness;
};


class Robot {
public:
//  Motor& getMotor() {return m_motor;}
    Light& getLight() {return m_light;}
private:
//  Motor m_motor;
    Light m_light;
};

int main(int argc, char *argv[]) {
    Robot robot;
    robot.getLight().setOnOff(1);
    robot.getLight().setColor(135);
    robot.getLight().setBrightness(75);
};

Но, как указал @AlexGarcia, вам действительно следует прочитать несколько руководств и создать простую программу на С ++, прежде чем пытаться сделать что-то подобное.

0 голосов
/ 25 июня 2018

Методы в C ++ называются так:

obj_robot.MOTOR.Set_power(85);

Вы действительно должны прочитать учебник по C ++.Например:

https://developers.google.com/edu/c++/getting-started https://cal -linux.com / tutorials / getting_started_with_c ++. html

...