Globalne zmienne static const w osobnej klasie

0

Witam.
Co należy zmienić w poniższym kodzie, żeby kompilator traktował zmienną Menu_Size jako const?

Main.cpp

#include <array>
#include "Globals.h"
std::array<int, Globals::Menu_Size> Array_T;

Globals.h

#pragma once

class Globals
{
public:

	static const size_t Menu_Size;

	Globals(void);
	~Globals(void);

};

Globals.cpp

#include "Globals.h"

const size_t Globals::Menu_Size = 4;

Globals::Globals(void)
{
}
Globals::~Globals(void)
{
}
1

Przecież ta zmienna jest const. To co chcesz zrobić, to żeby mogła być użyta w kontekście, gdzie wymagane jest constant expression.

W klasie ma być tak:

static const size_t Menu_Size = 4;

A w pliku źródłowym tak:

const size_t Globals::Menu_Size;

Do kompilacji i linkowania ta definicja w pliku źródłowym może być niepotrzebna, jeżeli ten const będzie użyty tylko jako constant expression, ale standard wymaga żeby mimo wszystko była.

1 użytkowników online, w tym zalogowanych: 0, gości: 1