I have seen that this question has been asked but not exactly from this approach. I looked at the other threads and did not see a solution for approach I have to take on this project. Please forgive me for the lengthy post in advance. I have to solve this issue from an OOP perspective, thing is I am trying to use an array to hold the number of disks that the user enters. I do not see another way of doing it.
            **This is my .h file for the class Tower.**
            #include <iostream>
            #include <string>
            #include "Location.h"
            using namespace std;
            //Class for the tower
            class Tower
            {
            private:
                Location _location; 
                public:
                    //Constructor to build object
                    Tower(Location location);
                    //set get functions to set and get values.
                    void setLocation (Location newLocation);
                    Location getLocation()const;  
                };
        **This is my location.h file i used an enum datatype to specify the location of each peg.**
            enum Location
            {
                start,
                middle,
                last
            };
        **My disk.h file that has the properties of my disks.**
        using namespace std;
        class Disk
        {
        private:
            int _diskLocation;
            int _diskSize;
        public:
            Disk(Tower tow1, int sizeOfDisk);
            void setdiskSize(int);
            int getdiskSize()const;
            void setdiskLocation(Tower newTower);
            Tower getdiskLocation()const;
        };
    **This is my implementation file where I initialized the constructor and its data members.**
    using namespace std;
    Tower::Tower(Location location)
    {
        setLocation(location);
    }
    Disk::Disk(Tower tow1, int sizeOfDisk)
    {
        setdiskSize(sizeOfDisk);
        setdiskLocation(tow1);
    }
Finally the main.cpp file. here i  make the objects to be used but when i try to pass in the number of disks entered by the user into the array i get the following error. **"Array initializer must be an initializer list"**
int main(int argc, const char * argv[])
{
    Tower tower1(start);
    Tower tower2(middle);
    Tower tower3(last);
    int numberOfDisks =0;
    cout << "Enter number of disks: " << endl;
    cin >> numberOfDisks;
     Disk disks[] = new Disk [numberOfDisks]   
    return 0;
}
I am beginning to think the problem is unsolvable using this approach. Every solution for this problem that I have found on the internet has it being done procedurally. Barring some other languages and programming concepts I have not been taught yet. This is my second programming class I have ever taken. Thank you for the help.
 
     
    