Я читал "Исключительный С++" от Herb Shutter, "Item 1: #define или const и inlining [...]".
Говорят, что инициализация в классе допускается только для целых типов (целые числа, символы, bools) и только для констант..
Я просто хочу знать, почему double/float не может быть инициализирован в объявлении класса. Существуют ли какие-либо конкретные причины?
class EngineeringConstants { // this goes in the class
private: // header file
static const double FUDGE_FACTOR;
...
};
// this goes in the class implementation file
const double EngineeringConstants::FUDGE_FACTOR = 1.35;
Я просто хочу знать причину, почему недопустимое объявление ниже:
class EngineeringConstants { // this goes in the class
private: // header file
static const double FUDGE_FACTOR = 1.35;
...
};
?