Статическая структура в C++

Я хочу определить структуру, где некоторые математические константы были бы сохранены.
Здесь, что я имею теперь:

struct consts {
    //salt density kg/m3
   static const double gamma;
};

const double consts::gamma = 2350;

Это хорошо работает, но было бы больше чем 10 констант с плавающей точкой, таким образом, я не хочу, записал 'статическую константу' перед каждым из них. И определите что-то как этот:

static const struct consts {
    //salt density kg/m3
   double gamma;
};

const double consts::gamma = 2350;

Это выглядит хорошо, но я получил эти ошибки:
1. функция членства redeclaration не позволенный
2. нестатический элемент данных не может быть определен вне его класса

Я задающийся вопросом, если там какой-либо C++ способ сделать это?

10
задан Andrew 11 June 2010 в 14:33
поделиться

2 ответа

Используйте пространство имен, а не пытайтесь превратить структуру в пространство имен.

namespace consts{
    const double gamma = 2350;
}

Метод доступа к данным также имеет точно такой же синаткс. Так, например:

double delta = 3 * consts::gamma;
30
ответ дан 3 December 2019 в 13:47
поделиться

Похоже, вам действительно просто нужно пространство имен:

namespace consts { 
    const double gamma = 2350.0;
    // ...
}

За исключением того, что я бы попытался придумать для него имя лучше, чем consts .

11
ответ дан 3 December 2019 в 13:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: