В C ++ .
и ->
предназначены для доступа к члену этого конкретного экземпляра объекта A
. ::
предназначен для доступа к предметам в классе A
. Сюда входят статика, перечисления и указатели функций.
Таким образом, в C ++ вы хотите A::F
или A::G
, если хотите получить значение enum.
для типа enum, который вы делаете A::E
class A
{
public:
enum E { F , G , H};
virtual ~A() = 0; //a pure virtual function to make the class abstract
};
int main()
{
A::E x; // x is declared as the enum
x = A::F; // x is assigned a particular enum value
return 0;
}
Также, чтобы сделать класс абстрактным, вы предоставляете чисто виртуальную функцию .