Я знаю, что вы не можете инициализировать переменную-член (кроме статической константы) внутри класса напрямую, не используя конструктор.Почему вы не можете инициализировать переменную внутри класса в C++
, но просто хотел знать, в чем причина этого. ниже фрагмент кода
, если какой-либо орган может помочь
class a
{
int c=5;
// giving error error C2864: 'a::c' : only static const integral data members can be
// initialized within a class
int b;
public:
a():c(1),b(2){}
void h()
{
printf("%d,%d",c,b);
}
};
int main()
{
a l;
l.h();
getchar();
}
Я имею в виду, что разные языки имеют разные ограничения ... Не знаете, какой ответ вы ищете. В C++ инициализация, зависящая от экземпляра, должна находиться внутри конструктора или его списка инициализации. – jedwards
Возможный дубликат [Почему я не могу иметь нецелый элемент static const в классе?] (Http://stackoverflow.com/questions/370283/why-canti-i-have-a-non-integral- static-const-member-in-a-class) –
@jedwards, это то, что я хочу знать, почему экземпляры не могут быть инициализированы напрямую. – hims15