Когда я включаю только свой «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 "файл. Но это так. Почему?