'Issues with declaring enum

I'm getting an error when trying to declare an enum. It says the identifier is undefined, but I am including the applicable file where it was defined. (This is my first coding class so sorry in advance). Where am I going wrong? And how do I pass the enum to a constructor?

// in degree.h file

#ifndef Student_h
#define Student_h

#pragma once

enum class DegreeProgram { program1, program2, program3 };

#endif


// in student.h file

#ifndef Student_h
#define Student_h

#pragma once

#include "degree.h"

class Student {

private:
   DegreeProgram program;
};

#endif



Solution 1:[1]

The problem is that you are using the same name Student_h in both of the include guards inside degree.h and student.h.

To solve this change the name of the include guards inside degree.h from Student_h to DEGREE_H as shown below:

degree.h

//------vvvvvvvv---->changed from Student_h to DEGREE_H
#ifndef DEGREE_H
#define DEGREE_H


enum class DegreeProgram { program1, program2, program3 };

#endif

Demo

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Anoop Rana