Может ли кто-нибудь объяснить мне, почему эти ошибки существуют во время моей компиляции?`* 'не может отображаться в константном выражении
class ILI9341_due;
class LCD_ILI9341
{
private:
ILI9341_due *tLCD;
ILI9341_due &LCD = *tLCD;
public:
LCD_ILI9341();
~LCD_ILI9341();
void initDisplay();
void drawMenu();
};
И ошибки:
'LCD_ILI9341::tLCD' cannot appear in a constant-expression
`*' cannot appear in a constant-expression
ISO C++ forbids initialization of member 'LCD'
making 'LCD' static
Спасибо за любую помощь :)
Что будет «LCD» для ссылки? Во время компиляции в 'tLCD' ничего нет – NathanOliver
Не могу ли я сделать ссылку на указатель? Я имею в виду, что в следующих нескольких строках 'tLCD' будет указывать на новый объект класса. – Klusio
@NathanOliver: Он собирается ссылаться на то, что инициализировал tLCD. Инициализация нестатического члена происходит, когда объект класса инициализируется, а не во время компиляции, и не требует постоянного выражения. Похоже, что у этого компилятора есть неполная поддержка. –