BACKGROUND GDOT has contacted you to help write code in C++ to control the railroad signals (barriers with flashing lights and sounds across railroad tracks) in Georgia.  You must create a Railroad Signal class with three hidden attributes (Up, Down and Signal), two constructors (a default that sets Up to on, Down and signal to off, and an overloaded that sets all Up to off, Down and Signal to on) and a method that changes the position and activates or deactivates the Signal. Here is the algorithm for the given C++ code: #include using namespace std; class RailroadSignal { private:     bool Up;     bool Down;     bool Signal; public:     // Default constructor that sets Up to on, Down and Signal to off     RailroadSignal() : Up(true), Down(false), Signal(false) {}     // Overloaded constructor that sets all Up to off, Down and Signal to on     RailroadSignal(bool up, bool down, bool signal) : Up(up), Down(down), Signal(signal) {}     // Method to change the position and activate or deactivate the Signal     void changePosition(bool up, bool down, bool signal) {         Up = up;         Down = down;         Signal = signal;         // Code to control the railroad signals in Georgia based on the values of Up, Down, and Signal         if (Up && Down && Signal) {             cout << "Railroad signals are up, down, and signal is on." << endl;         } else if (Up && Down && !Signal) {             cout << "Railroad signals are up and down, and signal is off." << endl;         } else {             cout << "Invalid position for railroad signals." << endl;         }     } }; int main() {     // Create a default instance of RailroadSignal     RailroadSignal signal1;     signal1.changePosition(true, false, true); // Change position of signal1     // Create an overloaded instance of RailroadSignal     RailroadSignal signal2(false, true, true);     signal2.changePosition(false, true, false); // Change position of signal2     return 0; } Question: You must create (in C++) two Railroad Signal objects from the class you just created (above) to prove that your class works properly for GDOT, the first object should use the default constructor and the second object should use the overloaded constructor.

EBK JAVA PROGRAMMING
9th Edition
ISBN:9781337671385
Author:FARRELL
Publisher:FARRELL
Chapter11: Advanced Inheritance Concepts
Section: Chapter Questions
Problem 2PE
icon
Related questions
Question

BACKGROUND

GDOT has contacted you to help write code in C++ to control the railroad signals (barriers with flashing lights and sounds across railroad tracks) in Georgia.  You must create a Railroad Signal class with three hidden attributes (Up, Down and Signal), two constructors (a default that sets Up to on, Down and signal to off, and an overloaded that sets all Up to off, Down and Signal to on) and a method that changes the position and activates or deactivates the Signal.

Here is the algorithm for the given C++ code:

#include <iostream>

using namespace std;

class RailroadSignal {
private:
    bool Up;
    bool Down;
    bool Signal;

public:
    // Default constructor that sets Up to on, Down and Signal to off
    RailroadSignal() : Up(true), Down(false), Signal(false) {}

    // Overloaded constructor that sets all Up to off, Down and Signal to on
    RailroadSignal(bool up, bool down, bool signal) : Up(up), Down(down), Signal(signal) {}

    // Method to change the position and activate or deactivate the Signal
    void changePosition(bool up, bool down, bool signal) {
        Up = up;
        Down = down;
        Signal = signal;

        // Code to control the railroad signals in Georgia based on the values of Up, Down, and Signal
        if (Up && Down && Signal) {
            cout << "Railroad signals are up, down, and signal is on." << endl;
        } else if (Up && Down && !Signal) {
            cout << "Railroad signals are up and down, and signal is off." << endl;
        } else {
            cout << "Invalid position for railroad signals." << endl;
        }
    }
};

int main() {
    // Create a default instance of RailroadSignal
    RailroadSignal signal1;
    signal1.changePosition(true, false, true); // Change position of signal1

    // Create an overloaded instance of RailroadSignal
    RailroadSignal signal2(false, true, true);
    signal2.changePosition(false, true, false); // Change position of signal2

    return 0;
}

Question:

You must create (in C++) two Railroad Signal objects from the class you just created (above) to prove that your class works properly for GDOT, the first object should use the default constructor and the second object should use the overloaded constructor.

Expert Solution
steps

Step by step

Solved in 2 steps with 1 images

Blurred answer
Follow-up Questions
Read through expert solutions to related follow-up questions below.
Follow-up Question

Using the objects you just created above (previous question), call the method to change the lights and arms to the next in the sequence (in C++).

Solution
Bartleby Expert
SEE SOLUTION
Knowledge Booster
void method
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
  • SEE MORE QUESTIONS
Recommended textbooks for you
EBK JAVA PROGRAMMING
EBK JAVA PROGRAMMING
Computer Science
ISBN:
9781337671385
Author:
FARRELL
Publisher:
CENGAGE LEARNING - CONSIGNMENT
Microsoft Visual C#
Microsoft Visual C#
Computer Science
ISBN:
9781337102100
Author:
Joyce, Farrell.
Publisher:
Cengage Learning,