У меня проблема с компиляцией. Ниже приведены файлы и наследование.
dateType.h, dateTypeImp.cpp: определить и реализовать класс dateType
addressType.h, addressTypeImp.cpp: определить и реализовать класс addressType
personType.h, personTypeImp.cpp: определить и реализовать класс personType
extPersonType.h, extPersonTypeImp.cpp: определить и реализовать класс extPersonType
addressBookType.h, addressBookTypeImp.cpp: определить и реализовать класс addressBookType
Ниже приведено наследование и отношения с родителями.
extPersonType «расширяет» (наследует) класс personType, а также «имеет» один объект каждого addressType и dateType.
Класс addressBookType "имеет" 500 объектов типа extPersonType.
(Я могу скопировать и вставить файлы .h, если это необходимо)
Следовательно, в extPersonType.h есть операторы #include для "dateType.h", "addressType.h", "personType.h". В addressBookType.h есть #include "extPersonType.h".
У меня есть следующий Makefile:
all: main
personTypeImp.o: personTypeImp.cpp
g++ -c -Wall personTypeImp.cpp
dateTypeImp.o: dateTypeImp.cpp
g++ -c -Wall dateTypeImp.cpp
addressTypeImp.o: addressTypeImp.cpp
g++ -c -Wall addressTypeImp.cpp
addressBookTypeImp.o: addressBookTypeImp.cpp
g++ -c -Wall addressBookTypeImp.cpp
main.o: main.cpp
g++ -c -Wall main.cpp
main: main.o addressBookTypeImp.o addressTypeImp.o dateTypeImp.o personTypeImp.o
g++ -Wall main.o addressBookTypeImp.o addressTypeImp.o dateTypeImp.o personTypeImp.o -o main
clean:
rm -f *.o *~ main
Все строки .o скомпилированы без ошибок. Последняя «основная» компиляция выдает эту ошибку:
make
g++ -c -Wall main.cpp
g++ -c -Wall addressBookTypeImp.cpp
g++ -c -Wall addressTypeImp.cpp
g++ -c -Wall dateTypeImp.cpp
g++ -c -Wall personTypeImp.cpp
g++ -Wall main.o addressBookTypeImp.o addressTypeImp.o dateTypeImp.o personTypeImp.o -o main
Undefined first referenced
symbol in file
extPersonType::getStatus() const addressBookTypeImp.o
extPersonType::isLastName(std::basic_string<char, std::char_traits<char>, std::allocator<char> >) constaddressBookTypeImp.o
Перечислено больше функций из extPersonType.
Интересно, в чем может быть ошибка.