Объявление друга вызывает "C ++ требует спецификатора типа для всех объявлений" - PullRequest
0 голосов
/ 11 апреля 2020

Когда я включаю только свой «Int.h», объявление друга вызывает «C ++ требует спецификатора типа для всех объявлений». И это хорошо работает, когда я просто пишу предварительное объявление "class Int;" и включите «Int.h» в файл cpp.

#ifndef _MY_ARRAY_H_
#define _MY_ARRAY_H_
// class Int;
#include "Int.h"

class MyArray {
    friend Int; //error: C++ requires a type specifier for all declarations
public:
    MyArray(int dim, int *size);
    Int operator[](int n);
private:
    int mDim;
    int *mSize;
    int *mData;
};
#endif

По моему мнению, ему не нужно «предварительное объявление», потому что в «Int. h "файл. Но это так. Почему?

...