также

лятор g ++ жалуется на эту ошибку, когда я объявляю друга таким образом:

friend MyClass;

вместо

friend class MyClass;

Почемукласс требуется ключевое слово? (Компилятор Borland C ++, BTW, не требует этого.)

Не мог ли компилятор просто найти MyClass в таблице символов и сказать, что он объявлен как класс? (в любом случае он явно ищет, потому что жалуется, когда MyClass не объявлен)

Это не так, как если бы он делал предварительное объявление класса: мне все еще нужно было либо объявить класс выше, либо, по крайней мере, объявить его заранее.

Это будет иметь смысл для меня (было бы здорово на самом деле), если

friend class MyClass;

при необходимости делает предварительное заявление, в противном случае это просто кажется мне синтаксической солью.

Я весело использовалдруг заявления безкласс или жеструктура Ключевое слово без жалоб компилятора в течение почти 20 лет. Это что-то довольно новое?

Ответы на вопрос(1)

Ваш ответ на вопрос