Что это значит?
Это означает, что компилятор считает ifstream
именем переменной без ассоциированного типа. Он думает так, потому что ему не было дано определение класса для ifstream
из-за того, что вы пропустили правильные включаемые файлы:
#include <iostream>
#include <fstream>
#include <string>
Кроме того, в PhoneEntry.cpp и PhoneNumber.cpp
везде, где у вас есть istream
, оно должно быть std::istream
То же самое с ostream
и ifstream
и т. Д.
В вашем main.cpp
есть следующий оператор using namespace std;
, который импортирует пространство имен std
в глобальное пространство имен, поэтому внутри этого файла вам не нужно добавлять пространство имен std::
ко всем вызовам iostream. .
Поскольку вы разделяете вещи, каждый новый файл cpp больше не имеет std::
в своем глобальном пространстве имен, поэтому вы должны сделать это самостоятельно.
Вы можете добавить using namespace std;
в ваши файлы cpp, но я обычно этого не делаю.