Скажем, у вас есть определенный класс, в котором каждый экземпляр должен иметь доступ к одному и тому же набору данных. Более эффективно объявлять данные вне класса, а не заставлять каждый экземпляр создавать свои собственные, но не нарушает ли это правило «отсутствия глобальных переменных»?
Пример кода:
Фу.ч
class Foo{
Foo();
void someFunction();
};
Foo.cpp
#include "Foo.h"
//surely ok since it's only global to the class's .cpp?
const int g_data[length] = {
//contains some data
};
Foo::someFunction(){
//do something involving g_data ..
}
.. вместо того, чтобы делать «g_data» переменной-членом. Или есть другой способ избежать создания глобального?