virtual class in C++

```
#include <iostream>
using namespace std;

class Machine {
public:
    virtual void run() {}
    class Parts {
    public:
        virtual int get_wheels() = 0;
        virtual string get_fule_type() = 0;
    };
};

class Car: public Machine {
public:
    void run() {
        cout << "The car is running." << endl;
    }
    class Parts: public Machine::Parts {
    public:
        int get_wheels() override {
            cout << "A car has 4 wheels." << endl;
            return 4;
        }
        string get_fule_type() override {
            cout << "A car uses gasolinle for fuel." << endl;
            return "gasoline";
        }
    };
    
};
int main() {
    Machine* machine = new Car();
    Machine::Parts* parts = new Car::Parts();
    machine->run();
    parts->get_wheels();
    parts->get_fule_type();
    return 0;    
}
```